MVC中的SSRS ReportViewer不会将参数传递给DataSource

时间:2019-06-13 19:28:01

标签: c# asp.net-mvc reportviewer ssrs-2016

我有一台远程SSRS 2016服务器,其中上传了一些报告。 这些报告将由开发,质量检查和生产环境共享。

我这样做的方法是使用一个带有表达式的动态连接字符串的数据源:

="Data Source="& Parameters!DatabaseServer.Value & 
";Initial Catalog="& Parameters!DatabaseName.Value

从MVC项目视图的参数中传递数据库名称和sql服务器地址。

ReportParameter p1 = new ReportParameter("UserId", CurrentUserId, false);
ReportParameter p2 = new ReportParameter("DatabaseServer", ReportDbServer, false);
ReportParameter p3 = new ReportParameter("DatabaseName", ReportDb, false);
var params = new ReportParameter[] { p1, p2, p3 };

reportViewer.ServerReport.SetParameters(param);

此异常在SetParameters调用中引发:

  

ReportServerException:处理ConnectString期间出错   数据源“ dsDynamic”的表达式。   (rsDataSourceConnectStringProcessingError)

另外2分:

  1. 在另一个较旧的项目中,这种动态的数据源方法有效,     尽管使用了MVCReportViewer(https://www.nuget.org/packages/MvcReportViewer/
  2. 在此项目中,如果我更改基于表达式的内容,报告将呈现 普通的“ Data Source = 127.0.0.1; Initial Catalog = AdventureDB”类型的连接字符串。

这里有没有人曾经通过ReportViewer成功使用过这种动态conn字符串方法?

0 个答案:

没有答案