以编程方式传递参数并在水晶报表中显示

时间:2017-06-05 06:54:31

标签: c# .net crystal-reports

我有一个水晶报告,我在其中以编程方式设置数据源和参数,但它无法正常工作。我没有按要求获得输出。

这是我显示全部

时的输出

enter image description here

但是当我将参数传递给它时,它什么也没显示。 我通过应用调试来检查DataTable,数据是Filtered但是它没有显示在我的Crystal Report Viewer

这是我将参数传递给它时的结果。 enter image description here

这是我的代码:

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();
}

1 个答案:

答案 0 :(得分:0)

传递参数如下所示:

CRPT.SetParameterValue("parameterName", parameterValue);

有关详细信息,请参阅此link