2
try
{
   this.reportViewer1.ProcessingMode= ProcessingMode.Local;
   LocalReport rep = reportViewer1.LocalReport;
   rep.ReportPath = "PopularHealthClub\\HistoryReport.rdlc";
   string a = "Hello";
   ReportParameter p1 = new ReportParameter("Textbox3", a);
   this.reportViewer1.LocalReport.SetParameters(new ReportParameter[] { p1});
}
catch (Exception exc)
{
  MessageBox.Show(""+exc);
}
4

1 回答 1

2

无需创建 数组ReportParameters,只需传递您创建的数组即可。

改变这个:

this.reportViewer1.LocalReport.SetParameters(new ReportParameter[] { p1});

对此:

this.reportViewer1.LocalReport.SetParameters(p1);

顺便说一句,从我在您的代码中看到的,您确定创建了一个名为“Textbox3”的参数吗?我认为您只是想为文本框分配一个值,这是完全错误的。

打开您的 RDLC 文件,转到“查看”->“报告数据”。现在,右键单击“参数”部分并​​选择“添加新参数”。使用唯一的名称,如“parameter1”。在您的设计报告中拖动此参数。

现在您已经创建了参数,您的代码将如下所示:

try
{
   this.reportViewer1.ProcessingMode= ProcessingMode.Local;
   LocalReport rep = reportViewer1.LocalReport;
   rep.ReportPath = "PopularHealthClub\\HistoryReport.rdlc";
   string a = "Hello";
   ReportParameter p1 = new ReportParameter("parameter1", a);
   this.reportViewer1.LocalReport.SetParameters(p1);
}
catch (Exception exc)
{
  MessageBox.Show(""+exc);
}
于 2013-01-30T08:01:41.640 回答