我正在使用sql报告和书面查询
SELECT * FROM users WHERE created_by = @createdby
并在代码隐藏文件后使用此代码传递参数来调用此报告。
param[0] = new ReportParameter("@createdby", "1");
reportviewer.ServerReport.SetParameters(param);
也在rdl文件中。我已将此参数“Set Parameter visibilty”设置为隐藏。 它在使用查询构建器执行此查询的情况下正常工作,出现了一个定义查询参数框并询问查询参数。而且效果很好。
但使用.cs文件传递此参数时。 它给出错误“参数验证失败。无法为所有参数提供有效值。(rsParameterError)”。
答案 0 :(得分:11)
根据你的一些谷歌搜索我发现了一个可能的候选人:
“导航到远程报告服务器管理页面(http:///Reports/Pages/Folder.aspx)。向下钻取并将光标悬停在报告上,打开菜单并选择管理。
在打开的页面上,选择参数并确保选中隐藏框以查看相关参数。
应用更新,并进行测试。“
如果有效,请告诉我。
答案 1 :(得分:1)
我在使用查询驱动的参数时遇到了类似的问题,因此我可以动态地在页脚中设置值。
它可以在VS中运行,在报表服务器上 - 在需要时手动输入参数值,并作为订阅。
这是从第三方批处理引擎调用的 - 我可以设置选择器和详细报告(选择器将运行查询以构建子报告将运行的预订列表)并可以在GUI中单步执行但是,在处理时(引擎也会在每个报告生成的客户端数据库上设置值),子报告会因此问题而失败,当你有几个参数对任何人都没用时
我将报表服务器置于详细模式(https://support.microsoft.com/en-us/help/2146315/recommended-configuration-for-verbose-logging-in-reporting-services),然后显示哪个参数生成错误。
此参数是从存储过程的共享数据源驱动的数据。将参数设置为接受NULL - 即使没有空值,也可以解决问题(并且它也设置为内部)。
我知道这已经有几年了,但谷歌搜索结果却很高,所以我想我会把这个添加到其他可能遇到这个问题的人身上。
史蒂夫
答案 2 :(得分:0)
您可能遇到不同参数的问题(该消息非常有用)。在我们的例子中,我们设置了一个默认值,该默认值未应用于错误消息
中未提及的另一个参数我们发现使用报表生成器保存参数并不总是设置正确的空值,空白和默认值设置。
我们发现我们必须在报表管理器界面上设置那些工作,因为XML和它们的“参数”设置之间的链接没有排队
我们在尝试设置空白或空默认值时也遇到了问题
希望这有助于某人
答案 3 :(得分:0)
我遇到了此错误,但是以上解决方案均无济于事。
我从SSRS删除了报告,然后从Visual Studio重新部署了它。
这解决了问题。