ssrs ReportParameter构造函数字符串数组限制



我有一个报告,我一直在向它发送一个运行良好的参数。报表参数已声明:

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")对数据库执行选择并返回值的字符串[]。大多数时候它都很好用。但是,有时报告不运行,只返回错误消息:

The 'pcode' parameter is missing a value

我们确定的是,FetchParams("X")有时会返回几十个值。当字符串[]中的值数目过大时,报告将失败,并显示错误消息。显然,可以用来实例化ReportParameter对象的值的数量有某种上限。

最初,我们认为限制可能存在于sqlserver本身,因为它限制了子句中的可以处理的值的数量。然而,错误消息似乎并不支持这一结论。

edit:对于这种特殊情况,已经显示了反复试验,33是字符串数组中值数量的上限。

有人有这个问题的经验吗
数组中传递给ReportParameter ctor的值的数量是否有上限
有没有办法将上限设置为一个更大的数字?

我们将不胜感激。谢谢

hokay,伙计们,这是这个谜团的真正答案。

该报表有一个名为"pcode"的参数
"pcode"参数有一个数据源,用于创建下拉值列表

现在,运行报告的代码正在生成pcode参数的值列表
当值列表被传递到报表时,如果有一个值与从报表的数据源生成的报表的列表不匹配,则会得到令人麻木的ssrs错误消息:

The 'pcode' parameter is missing a value

ug ly。但那是给你的m$。

对于记录,传递给ReportParameter ctor的字符串数组中的值的数量似乎没有限制。。。并且错误消息来自ssrs,而不是生成ReportParameter对象的代码。

希望这能帮助其他有这个问题的人。

最新更新