我有一个报告,我一直在发送一个工作得很好的参数。 报告参数已声明:
string[] pclist = new string(){ "A", "B", "C" };
ReportParameter pcode = new ReportParameter( "pcode", pclist, false );
它为我提供了一个新的报表参数,该参数使用3个值的字符串数组进行初始化。到目前为止一切顺利。
在报告中,' pcode'参数定义为' String',用作:
...
and PCode in ( @pcode )
...
最近,因为参数的值需要根据登录的人而改变,所以我们对其进行了更改,使得参数从方法调用的返回值中获取字符串数组。 (该方法从数据库中获取值):
ReportParameter pcode = new ReportParameter( "pcode", FetchParams("X"), false );
FetchParams(" X")对数据库执行select并返回值[]的字符串[]。大多数时候它工作正常。但是,有时报告不会运行,只返回错误消息:
The 'pcode' parameter is missing a value
我们确定的是, FetchParams(" X")有时会返回数十个值。当string []中的值数量太大时,报告将失败并显示该错误消息。显然,可以用来实例化ReportParameter对象的值的数量有某种上限。
最初我们认为限制可能在sql server本身中作为 in 子句中可以处理的值数量的限制。但是,错误信息似乎不支持这一结论。
编辑:针对此特定情况显示了试错,33是字符串数组中值的上限。
有没有人有这个问题的经验?
传递给ReportParameter ctor的数组中的值数量是否有上限?
有没有办法将上限配置为更大的数字?
任何和所有帮助将不胜感激。 谢谢!
答案 0 :(得分:0)
hokay,伙计们,这是对这一点神秘感的真正答案。
报告有一个名为'pcode'的参数
'pcode'参数有一个数据源,用于创建下拉值列表。
现在运行报告的代码正在生成pcode参数的值列表 当值列表传递给报表时,如果某个值与从其数据源生成的报表的列表不匹配,则会收到令人头疼的错误消息:
The 'pcode' parameter is missing a value
UG-LY。但那是你的m $。
对于记录,传递给ReportParameter ctor的字符串数组中的值的数量似乎没有限制......并且错误消息来自ssrs,而不是生成ReportParameter对象的代码
希望这可以帮助有这个问题的其他人。