gpt4 book ai didi

wpf - 我想从 c# 代码更新 SSRS 报告的共享数据源

转载 作者:行者123 更新时间:2023-12-04 19:38:35 25 4
gpt4 key购买 nike

我在我的 ReportServer 上部署了一份报告。此报告使用共享数据源,该数据源也部署在 ReportServer 上。我在使用 WindowsFormsHost 控件的 WPF 应用程序中使用 ReportViewer。通过配置 ReportViewer 的 ServerReport 属性,我能够在我的应用程序中正确显示来自 ReportServer 的报告。

我的问题是,是否可以更改部署在我的报表正在使用的 ReportServer 上的共享数据源的连接字符串。

实际上我想对同一个数据库的多个副本使用相同的报告以进行测试和迁移。

谁能告诉我一个用 C# 代码更新共享数据源的解决方案?

最佳答案

无法通过 ReportViewer 更改报表的数据源。您可以使用 Web 服务更改数据源,但这实际上会为所有用户更改服务器上的数据源 - 可能不是您想要的。

我认为最接近的方法是使用嵌入式数据源构建报表,该数据源使用参数值来控制其连接字符串。您可以构建一个共享数据集,按名称(“测试”、“迁移”等)提供连接字符串,并将该名称作为参数传递给报告。

你需要:

  1. 不会更改的共享数据源。
  2. 返回连接名称列表(例如“测试”和“迁移”)的共享数据集。我们称之为 NamedConnections。这些可以来自共享数据源中的表,也可以在数据集的查询中进行硬编码。
  3. 采用@NamedConnection 参数并返回作为完整连接字符串的单个字符串值的共享数据集。同样,这些可以来自数据库或被硬编码。我们称它为 SelectedConnection
  4. 报告中的@NamedConnection 参数。这应该是可见的,并且应该使用 NamedConnections 数据集作为其可用值。
  5. 报表上的一个 @ConnectionString内部 参数,它使用 SelectedConnection 数据集作为其默认值。
  6. 报表中的嵌入数据源使用@ConnectionString 参数。这允许您使用数据集设计器来构建您的数据集。我将其称为 StaticConnection
  7. 报告中的嵌入式数据源确实使用@ConnectionString 参数作为其连接字符串。报表设计完成并准备好部署后,切换您的数据集以使用此数据源。我们称它为 DynamicConnection

例如,现在使用 ReportViewer,您将值“Test”传递给 @NamedConnection 参数。然后 SelectedConnection 数据集可以运行并向 @ConnectionString 参数提供适当的连接字符串,然后由 DynamicConnection 数据源使用。

实际的数据源引用永远不会改变,但其中的连接字符串会改变。

关于wpf - 我想从 c# 代码更新 SSRS 报告的共享数据源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29406021/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com