在C中使用不带数据库的数据集打印RDLC#

在C中使用不带数据库的数据集打印RDLC#,c#,.net,winforms,dataset,rdlc,C#,.net,Winforms,Dataset,Rdlc,我有一个应用程序,可以打印文本框中的所有数据。这意味着我没有数据库 我使用RDLC来完成打印过程。我在报告中设置每个文本框的参数,并添加此代码,以便将文本框的文本传输到报告中 ReportParameter textbox1param = new ReportParameter("textbox1", textbox1.Text); printform.reportViewer1.LocalReport.SetParameters(textbox1param); 但我的问题是,当我这样

我有一个应用程序,可以打印文本框中的所有数据。这意味着我没有数据库

我使用RDLC来完成打印过程。我在报告中设置每个文本框的参数,并添加此代码,以便将文本框的文本传输到报告中

  ReportParameter textbox1param = new ReportParameter("textbox1", textbox1.Text);
  printform.reportViewer1.LocalReport.SetParameters(textbox1param);
但我的问题是,当我这样做时,它会使我的系统在打印时崩溃,因为我重复了很多次这个代码,只是为了传输表单中每个文本框的文本。(我重复代码10次,只更改文本框的名称和参数名称。)


我发现还有另一种方法是使用dataset。我的问题是我不使用数据库,因为我只是在屏幕上打印用户输入的内容。所以我不能为它创建查询。我还有别的办法解决这个难题吗?谢谢你们

我刚刚尝试了在不向报表中添加数据源的情况下制作报表示例,它对我来说很好。即使创建一个没有数据源的报表也有点奇怪。下面是我所做的,我首先创建了一个带有3个参数的虚拟报表,并将其分配给报表查看器

在那之后,我去做了一些编码,因为你要找的应该没有那么复杂,这里我给你看我的代码片段,来填充我调用函数的参数,但这不是必需的。如果报告不起作用,可能是因为您拼错了参数名(它们区分大小写!)

private void Form2\u加载(对象发送方,事件参数e)
{
reportViewer1.LocalReport.SetParameters(SetParameter());
reportViewer1.RefreshReport();
}
私有静态IEnumerable SetParameter()
{
返回新列表
{
新的ReportParameter(“Param1”、“text1”、false),
新的ReportParameter(“Param2”、“text2”、false),
新的ReportParameter(“Param3”,“text3”,false)
};
}
在完成这项工作并运行我的小样本后,这就是输出,我不确定您的报告中出现了什么错误。但是正如我之前所说的,我将检查参数名是否按照您在rdlc上声明的那样编写


你找到解决问题的方法了吗?@Raphael还没有,先生,你能给我一些建议吗?
private void Form2_Load(object sender, EventArgs e)
{
     reportViewer1.LocalReport.SetParameters(SetParameter());
     reportViewer1.RefreshReport();
}

private static IEnumerable<ReportParameter> SetParameter()
{
     return new List<ReportParameter>
     {
         new ReportParameter("Param1", "text1", false),
         new ReportParameter("Param2", "text2", false),
         new ReportParameter("Param3", "text3", false)
     };
 }