【问题标题】:Parameter validation failed. It is not possible to provide valid values for all parameters. (rsParameterError) SSRS 2008参数验证失败。不可能为所有参数提供有效值。 (rsParameterError) SSRS 2008
【发布时间】:2014-06-20 11:28:27
【问题描述】:

我将参数从 aspx 页面传递到报表服务器并收到此异常。这是我设置报告参数的代码。

ReportViewer1.ServerReport.ReportServerUrl = new Uri("http://zeeshankhatri-p/ReportServer_MSSQLSERVER2012");
ReportViewer1.ServerReport.ReportPath = "/DBAReporting/Clients";

ReportParameter p = new ReportParameter();
p.Name = "clientName";
p.Values.Add("Bank Alfalah");

ReportViewer1.ServerReport.SetParameters(p);

这里是参数属性:

选择参数可见性 = 内部

允许空白值 = 选中

允许空值 = 选中

可用值 = 无

默认值 = 无默认值

数据集属性:

查询:

查询类型 = 存储过程

参数:

参数名称 = @clientName

参数值 = [@clientName]

你能建议我在我的情况下做错了什么吗?

【问题讨论】:

    标签: reporting-services ssrs-2008


    【解决方案1】:

    有很多问题可能会导致这种情况:

    • 以这种方式运行时的参数可用值查询不包含任何条目,因此您无法分配有效值
    • 参数被隐藏,不能通过这种方式分配。检查服务器上的报告参数设置并根据需要进行调整。
    • 您对开发中的报表的参数进行了一些更改,这些更改并未部署到报表服务器。请注意,某些参数属性(如默认值)在重新部署报表时不会被覆盖,因此服务器设置不会丢失。打开报告设置并检查服务器上的报告参数设置,以确保它们与您在开发中的设置相匹配。

    删除服务器报告并再次部署以重置回开发报告设置可能更容易。

    您还尝试将单个参数对象传递给允许您传递许多参数的函数。

    SetParameters 接受IEnumerable<ReportParameter>(通常是List),而不仅仅是一个ReportParameterobject。您需要将参数嵌入到IEnumerable 对象中。这是一种在一行代码中完成的简单方法:

    ReportViewer1.ServerReport.SetParameters(new ReportParameter[] { p });
    

    【讨论】:

    • 我已按照您的建议进行了更改,但仍然报错。
    • 添加了更多要检查的内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多