Wpf 我想从c#代码更新SSRS报告的共享数据源
我在ReportServer上部署了一个报表。此报表使用的共享数据源也部署在ReportServer上。 我使用WindowsFormsHost控件在WPF应用程序中使用ReportViewer。通过配置ReportViewer的ServerReport属性,我能够在我的应用程序中正确显示来自ReportServer的报告 我的问题是,我的报表正在使用的ReportServer上部署的共享数据源的connectionstring是否可以更改 实际上,我想对同一数据库的多个副本使用同一个报告进行测试和迁移Wpf 我想从c#代码更新SSRS报告的共享数据源,wpf,reporting-services,datasource,reportviewer,reportserver,Wpf,Reporting Services,Datasource,Reportviewer,Reportserver,我在ReportServer上部署了一个报表。此报表使用的共享数据源也部署在ReportServer上。 我使用WindowsFormsHost控件在WPF应用程序中使用ReportViewer。通过配置ReportViewer的ServerReport属性,我能够在我的应用程序中正确显示来自ReportServer的报告 我的问题是,我的报表正在使用的ReportServer上部署的共享数据源的connectionstring是否可以更改 实际上,我想对同一数据库的多个副本使用同一个报告进行测
有谁能告诉我一个用c代码更新共享数据源的解决方案吗 无法通过ReportViewer更改报表的数据源。您可以使用web服务更改数据源,但这实际上会更改服务器上所有用户的数据源—可能不是您想要做的 我认为最接近的方法是使用嵌入式数据源构建报表,该数据源使用参数值来控制其连接字符串。您可以构建一个共享数据集,该数据集按名称(“测试”、“迁移”等)提供连接字符串,并将该名称作为参数传递给报表 您需要:
NamedConnections
。这些可以来自共享数据源中的表,也可以在数据集的查询中硬编码@NamedConnection
参数并返回一个完整连接字符串的字符串值。同样,这些数据可能来自数据库,也可能是硬编码的。我们称之为SelectedConnection
@NamedConnection
参数。这应该是可见的,并且应该使用NamedConnections
数据集获取其可用值@ConnectionString
内部参数,该参数使用SelectedConnection
数据集作为其默认值@ConnectionString
参数的嵌入式数据源。这允许您使用数据集设计器构建数据集。我将其称为静态连接
@ConnectionString
参数作为其连接字符串的嵌入式数据源。完成报表设计并准备部署后,将数据集切换为使用此数据源。让我们称之为DynamicConnection
@NamedConnection
参数。然后,SelectedConnection
数据集可以运行并向@ConnectionString
参数提供适当的连接字符串,然后由DynamicConnection
数据源使用
实际的数据源引用永远不会更改,但其中的连接字符串会更改。我知道您可以检索数据源,但我认为您不能在ServerReport中设置它。您可以使用
this.reportViewer1.LocalReport.DataSources.Add(ReportDataSource)
在LocalReport中添加数据源,这就是限制我更新数据源的原因。