参数验证失败。无法为所有参数提供有效值。 (rsParameterError)SSRS 2008

时间:2014-06-20 11:28:27

标签: reporting-services ssrs-2008

我将参数从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);

这里是参数属性:

选择参数可见性=内部

允许空白值=已选中

允许空值=已检查

可用值=无

默认值=无默认值

DataSet属性:

查询:

查询类型=存储过程

参数:

参数名称= @clientName

参数值= [@clientName]

你可以在我的案例中建议我做错了吗?

1 个答案:

答案 0 :(得分:3)

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

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

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

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

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

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