C# 以编程方式传递参数并在crystal report中显示

C# 以编程方式传递参数并在crystal report中显示,c#,.net,crystal-reports,C#,.net,Crystal Reports,我有一个crystal报告,其中我以编程方式设置了数据源和参数,但它不起作用。我没有按要求得到输出 这是我显示全部时的输出 但当我向它传递参数时,它什么也不显示。 我通过应用调试签入了DataTable。数据已过滤,但它未显示在我的Crystal Report Viewer中 这是我向它传递参数时得到的结果。 这是我的密码: private void button1_Click(object sender, EventArgs e) { con.Open(); DataTab

我有一个crystal报告,其中我以编程方式设置了数据源和参数,但它不起作用。我没有按要求得到输出

这是我显示全部时的输出

但当我向它传递参数时,它什么也不显示。 我通过应用调试签入了DataTable。数据已过滤,但它未显示在我的Crystal Report Viewer中

这是我向它传递参数时得到的结果。

这是我的密码:

private void button1_Click(object sender, EventArgs e)
{
    con.Open();
    DataTable table = new DataTable();
    DataSet DataSet2 = new DataSet();
    SqlCommand cmd = new SqlCommand("Select * from personal_data WHERE class = '" + textBox1.Text.ToString()+"'", con);

    table.Load(cmd.ExecuteReader());

    DataSet2.DataSetName = "dt";
    DataSet2.AcceptChanges();

    DataSet2.Tables.Add(table);
    ad.SelectCommand=cmd;
    ad.Fill(DataSet2,"personal_table");


    ParameterFields paramFields = new ParameterFields();
    // ParameterDiscreteValue paramDiscreteValue = new ParameterDiscreteValue();

    ParameterField paramField = new ParameterField();
    ParameterDiscreteValue paramDiscreteValue = new ParameterDiscreteValue();
    paramField.Name = @"class";
    paramDiscreteValue.Value = textBox1.Text.ToString();
    paramField.CurrentValues.Add(paramDiscreteValue);
    paramFields.Add(paramField);

    reportDocument.Load(@"C:\Users\Administrator\Documents\Visual Studio 2010\Projects\CrudStudent\Crud\CrystalReport1.rpt");
    crystalReportViewer1.ParameterFieldInfo = paramFields;
    reportDocument.SetDataSource(DataSet2);
    crystalReportViewer1.ReportSource = reportDocument;
    con.Close();
}

传递一个参数,如下所示:

CRPT.SetParameterValue("parameterName", parameterValue);

有关更多详细信息,请参见此。

您是否已经在crystal报表中创建了参数名称“class”?是的,我已经创建了它