我使用的是SQL报告和书面查询
SELECT * FROM users WHERE created_by = @createdby
并在代码隐藏文件中使用此代码传递参数以调用此报表。
param[0] = new ReportParameter("@createdby", "1");
reportviewer.ServerReport.SetParameters(param);
也在RDL文件中。我已将此参数“Set参数Visibilty”设置为隐藏。在我使用查询构建器执行此查询的情况下,它工作得很好,出现了一个定义查询参数框并询问查询参数。而且效果很好。
但在使用.cs文件传递此参数时。它会给出错误“参数验证失败。无法为所有参数提供有效值。(RsParameterError)”。
5条答案
按热度按时间muk1a3rh1#
根据一些谷歌搜索,我找到了一个可能的候选人:
“导航到远程报表服务器管理页(http:///Reports/Pages/Folder.aspx).向下钻取并将光标悬停在报表上,打开菜单并选择管理。
在打开的页面上,选择参数,并确保为关注的参数选中隐藏框。
应用更新并进行测试。“
如果这对你有效果,让我知道。
cngwdvgl2#
在使用查询驱动的参数以便动态设置页脚中的值时,我遇到了类似的问题。
它将在VS、报表服务器上运行良好--在需要的地方手动输入参数值,并作为订阅。
这是从第三方批处理引擎调用的-我可以设置选择器和详细信息报告(选择器将运行查询以构建运行子报告的预订列表),并且可以在图形用户界面中单步执行,但是在处理(引擎还会在发布每个报告生成的客户数据库上设置值)时,子报告将失败,并出现此问题,当您获得几个参数时,这对任何人都没有用处
我将报告服务器置于详细模式(https://support.microsoft.com/en-us/help/2146315/recommended-configuration-for-verbose-logging-in-reporting-services),这将暴露生成错误的参数。
此参数是从存储过程的共享数据源驱动的数据。将参数设置为Accept Null(接受空值)-即使没有空值,也更正了该问题(并且也设置为内部)。
我知道这有几年的历史了,但它在谷歌搜索结果中排名靠前,所以我想我应该为其他可能遇到这个问题的人添加这个。
史蒂夫
rn0zuynd3#
您可能会遇到其他参数的问题(该消息非常有用)。在我们的示例中,我们设置了一个未应用于错误消息中未提及的另一个参数的默认值
我们发现,使用报表生成器保存参数并不总是设置正确的空、空和默认值设置。
我们发现我们必须在报表管理器界面上设置这些参数,因为XML和它们的“参数”设置之间的链接没有对齐
1.查找从http://server/Reports/Pages/Folder.aspx?ViewMode=List开始的报表
1.管理报表(右下拉箭头)
1.选择参数
1.调整设置
1.申请
我们在尝试设置空白或空默认值时也遇到了问题
希望这能帮助一些人
qmb5sa224#
我有这个错误,但上面的解决方案都没有帮助。
我从SSRS中删除了报告,然后从Visual Studio中重新部署了它。
这解决了问题。
mqxuamgl5#
关于该错误:
参数验证失败。不可能为所有参数提供有效值
我发现,当用户在ReportManager中修改了报表的参数配置(以更改/添加参数的默认值),然后在重新上载修改了参数的报表时,修改后的参数配置不再有效,但仍在使用时,就会发生此错误。
![](https://i.stack.imgur.com/NG117.png)
如果您删除报告并重新上传,这将解决它,但也会删除所有相关数据,例如需要重建的订阅。
更优雅地解决;
1.执行以下SQL以清除参数配置(在
ReportServer.dbo.Catalog.Parameter
中)。这将导致重建参数配置以匹配正在上载的报告。从报表管理器下载并重新上传报表,以触发参数设置的重建。