参数验证失败,不可能为所有参数提供有效值,(RsParameterError)SQL Reporting 2008

628mspwn  于 2022-10-03  发布在  其他
关注(0)|答案(5)|浏览(172)

我使用的是SQL报告和书面查询

SELECT * FROM users WHERE created_by = @createdby

并在代码隐藏文件中使用此代码传递参数以调用此报表。

param[0] = new ReportParameter("@createdby", "1");
       reportviewer.ServerReport.SetParameters(param);

也在RDL文件中。我已将此参数“Set参数Visibilty”设置为隐藏。在我使用查询构建器执行此查询的情况下,它工作得很好,出现了一个定义查询参数框并询问查询参数。而且效果很好。

但在使用.cs文件传递此参数时。它会给出错误“参数验证失败。无法为所有参数提供有效值。(RsParameterError)”。

muk1a3rh

muk1a3rh1#

根据一些谷歌搜索,我找到了一个可能的候选人:

“导航到远程报表服务器管理页(http:///Reports/Pages/Folder.aspx).向下钻取并将光标悬停在报表上,打开菜单并选择管理。

在打开的页面上,选择参数,并确保为关注的参数选中隐藏框。

应用更新并进行测试。“

如果这对你有效果,让我知道。

cngwdvgl

cngwdvgl2#

在使用查询驱动的参数以便动态设置页脚中的值时,我遇到了类似的问题。

它将在VS、报表服务器上运行良好--在需要的地方手动输入参数值,并作为订阅。

这是从第三方批处理引擎调用的-我可以设置选择器和详细信息报告(选择器将运行查询以构建运行子报告的预订列表),并且可以在图形用户界面中单步执行,但是在处理(引擎还会在发布每个报告生成的客户数据库上设置值)时,子报告将失败,并出现此问题,当您获得几个参数时,这对任何人都没有用处

我将报告服务器置于详细模式(https://support.microsoft.com/en-us/help/2146315/recommended-configuration-for-verbose-logging-in-reporting-services),这将暴露生成错误的参数。

此参数是从存储过程的共享数据源驱动的数据。将参数设置为Accept Null(接受空值)-即使没有空值,也更正了该问题(并且也设置为内部)。

我知道这有几年的历史了,但它在谷歌搜索结果中排名靠前,所以我想我应该为其他可能遇到这个问题的人添加这个。

史蒂夫

rn0zuynd

rn0zuynd3#

您可能会遇到其他参数的问题(该消息非常有用)。在我们的示例中,我们设置了一个未应用于错误消息中未提及的另一个参数的默认值

我们发现,使用报表生成器保存参数并不总是设置正确的空、空和默认值设置。

我们发现我们必须在报表管理器界面上设置这些参数,因为XML和它们的“参数”设置之间的链接没有对齐

1.查找从http://server/Reports/Pages/Folder.aspx?ViewMode=List开始的报表
1.管理报表(右下拉箭头)
1.选择参数
1.调整设置
1.申请

我们在尝试设置空白或空默认值时也遇到了问题

希望这能帮助一些人

qmb5sa22

qmb5sa224#

我有这个错误,但上面的解决方案都没有帮助。

我从SSRS中删除了报告,然后从Visual Studio中重新部署了它。

这解决了问题。

mqxuamgl

mqxuamgl5#

关于该错误:
参数验证失败。不可能为所有参数提供有效值

我发现,当用户在ReportManager中修改了报表的参数配置(以更改/添加参数的默认值),然后在重新上载修改了参数的报表时,修改后的参数配置不再有效,但仍在使用时,就会发生此错误。

如果您删除报告并重新上传,这将解决它,但也会删除所有相关数据,例如需要重建的订阅。

更优雅地解决;

1.执行以下SQL以清除参数配置(在ReportServer.dbo.Catalog.Parameter中)。这将导致重建参数配置以匹配正在上载的报告。

exec ReportServer.dbo.SetParameters @Path = N'/MyReportFolder/MyReport', @Parameter= NULL

从报表管理器下载并重新上传报表,以触发参数设置的重建。

相关问题