【问题标题】:Use SSRS report parameter to accept comma separated integer from ASP.NET web app使用 SSRS 报告参数接受来自 ASP.NET Web 应用程序的逗号分隔整数
【发布时间】:2020-07-02 20:41:10
【问题描述】:
  1. 在 SSRS 中,我有一个整数类型的参数。

  1. 参数值是从数据集中绑定的,因此在报表加载后我们可以选择参数并运行报表。

  1. 我的情况是我必须在不影响现有功能的情况下从 Web 应用程序传递相同的参数。与“1,2,3”一样,这些是存在于下拉列表中的 ID。

详细说明问题:


我在 SSRS 数据集中有一个查询,它采用参数 employeeIds(这是一个多选参数)查询类似于 EmployeeTable.Id in (@employeeIds)

当我使用 SQL 分析器并看到针对我的数据库执行的查询时,它看起来像这样 EmployeeTable.Id in (21,34,56,81)

这很好,到目前为止一切正常。现在我需要从 ASPX 页面调用相同的报告而不显示 SSRS 过滤器窗格(所以我必须构造我的参数并传递给 SSRS 报告)

这是我尝试传递参数的方式

parameters(10) = New ReportParameter("employeeIds", "21,34,56,81")

这会引发如下错误

无法将 varchar 转换为整数

如果我将 Report 参数更改为会破坏 SSRS 参数过滤器逻辑的字符串,那么我不能这样做。在不干扰当前工作的 SSRS 报告的情况下,如何将这个参数从代码传递到报告?

任何帮助将不胜感激!

【问题讨论】:

  • 所以.. 到目前为止你有什么问题,你到底遇到了什么问题?
  • 当我传递逗号分隔的输入时出现异常说明 - 无法将字符串转换为整数
  • 如果您将参数的数据类型更改为文本会怎样?
  • 如果我将其更改为文本,则没有错误,但 SSRS 无法识别和应用值。输入文本并传递一个值,例如“1”,它工作正常
  • @Harry 请查看我更新后的问题,我已经详细说明了所有细节。

标签: asp.net sql-server ssrs-2012


【解决方案1】:

如果我说得对,您正试图在 aspx 页面中打开报告,并希望在将参数 employeeIds 设置为特定值的情况下打开它。因此,您正在考虑一次将employeeIds 的参数值设置为多个值。

可能是这样的:

parameters(10) = New ReportParameter("employeeIds", new string[] {"21","34","56","81"})

当为一个参数提供多个值时,您需要将它们放在一个数组中。查看here 了解更多信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    相关资源
    最近更新 更多