【问题标题】:How to set multiple integer ReportParameter in c#?如何在 C# 中设置多个整数 ReportParameter?
【发布时间】:2013-04-08 18:32:32
【问题描述】:

我正在使用 Report Builder 并在 c# 中加载报告,也在 c# 中设置了一些参数:

我的问题是,当我将它存储在数组中时,如何设置多个整数值的 ReportParameter?

我尝试了以下方法:

 MyReportViewer.ServerReport.SetParameters(
      new ReportParameter("storeSelected", new int[3]{2,3,4}, false)
 );

但是,这不起作用,因为 ReportParameter 不采用 int。

我还尝试了以下方法:

 MyReportViewer.ServerReport.SetParameters(
      new ReportParameter("storeSelected", new int[3]{"2", "3", "4" }, false)
 );

这也不起作用,因为我的参数“storeSelected”是 int 类型,并且会引发类型转换错误。

我需要做什么才能将我的整数数组传递给reportParameter?

【问题讨论】:

  • 这还能编译吗?
  • However this doesn't work 是什么意思..?你看到了什么 vs 你期待什么。看看这个 MSDN 站点,您似乎没有正确传递ReportParams[] msdn.microsoft.com/en-us/library/ms252178%28v=vs.80%29.aspx
  • 看起来 ReportParameter 没有可以采用 int 数组的 constructor。试试new ReportParameter("storeSelected", new[]{"2","3","4"}, false)
  • 我已经澄清了我的问题。
  • @YongkeBillYu 您不能使用字符串值启动 int[]。试试我上面给你的那一行。

标签: c# reportbuilder


【解决方案1】:

基于documentation by Microsoft,这行代码应该是:

MyReportViewer.ServerReport.SetParameters(
    new ReportParameter("storeSelected", new string[] { "2", "3", "4" }, false)
);

【讨论】:

  • +1 对我来说看起来不错.. 以及文档说明的内容
  • 不幸的是,它不起作用,因为 storeSelected 是 int 类型,可以采用多个值。抛出“无法将类型 'string' 隐式转换为 'int'”错误。
  • @YongkeBillYu,除非您使用不同的库,否则您之前的代码可能无法编译。
  • 是的,你是对的,它不编译,我如何让它编译?
  • 好的!我听从了你的建议并且能够做到,但这是通过很多箍。
猜你喜欢
  • 1970-01-01
  • 2016-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-08
  • 2012-05-28
  • 2015-01-24
相关资源
最近更新 更多