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

Reporting services 参数验证失败。无法为所有参数提供有效值。(rsParameterError)SSRS 2008,reporting-services,ssrs-2008,Reporting Services,Ssrs 2008,我正在将参数从aspx页面传递到报表服务器并获取此异常。下面是我设置报表参数的代码 ReportViewer1.ServerReport.ReportServerUrl = new Uri("http://zeeshankhatri-p/ReportServer_MSSQLSERVER2012"); ReportViewer1.ServerReport.ReportPath = "/DBAReporting/Clients"; ReportParameter p = new ReportPar

我正在将参数从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]


你能告诉我我做错了什么吗?

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

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

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

获取
IEnumerable
(通常是
列表
),而不仅仅是单个
ReportParameter
对象。您需要将参数嵌入到
IEnumerable
对象中。以下是一个简单的方法,只需一行代码即可完成:

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

我已根据您的建议进行了更改,但仍有错误。添加了一些要检查的内容。