У меня есть удаленный сервер SSRS 2016 с несколькими загруженными отчетами.
Эти отчеты должны предоставляться средам разработки, контроля качества и производства.
Я делаю это, имея DataSource со строкой динамического соединения, используя выражение:
="Data Source="& Parameters!DatabaseServer.Value &
";Initial Catalog="& Parameters!DatabaseName.Value
Имя базы данных и адрес сервера sql передаются в параметрах из представления проекта MVC.
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 дополнительных очка:
- В другом более старом проекте этот динамический подход к источникам данных работает,
хотя и используя MVCReportViewer (https://www.nuget.org/packages/MvcReportViewer/)
- В этом проекте отчет отображается, если я изменяю выражения на основе
строка подключения к типу «Источник данных = 127.0.0.1; Исходный каталог = AdventureDB».
Кто-нибудь здесь когда-либо успешно использовал этот подход с использованием динамической строки conn, используя ReportViewer?