【问题标题】:c# Reporting Services -- ReportParameter value that isn't a stringc# Reporting Services -- 不是字符串的 ReportParameter 值
【发布时间】:2008-10-24 13:58:05
【问题描述】:

好的

我目前正在做一个小项目,报告需要一个 int 但 ReportParameter 类只让我有一个字符串或字符串[]的值

我怎样才能传递一个int?

谢谢

【问题讨论】:

    标签: c# asp.net reporting-services reportparameter


    【解决方案1】:

    您可以调用方法GetReportParameters(),它将返回一个ReportParameter[] 数组。如果您遍历每个参数并查看其 Type 属性,它将指示它是否为 int。 Type 属性是ParameterTypeEnum 类型的enum,对于int 而言,它是ParameterTypeEnum.Integer

    【讨论】:

      【解决方案2】:

      我会尝试:

      var rp = new ReportParameter("IntValue", intValue.ToString());
      report.SetParameters(new ReportParameter[]{rp});
      

      【讨论】:

      • 但是如果 ReportParameter 的类型是 int... 我不想使用 .ToString() 我想使用 int。谢谢
      • 由于 ReportParameter.Value 是一个字符串,您必须定义一个隐式运算符才能使用 ToString()。
      【解决方案3】:

      这个问题仍然没有答案,最终在底层存储过程中进行了转换。

      【讨论】:

      • 奇怪的是,当您在报表本身 (*.rdl) 中声明报表参数时,它可以具有整数、布尔值、日期时间等类型,但 ReportParameter 构造函数只接受字符串。这意味着必须将 DateTime 值转换为字符串,当报表服务器的本地与客户端的本地不同时,这会导致问题。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多