以编程方式更新/更改SSRS数据源(未共享)

时间:2017-06-19 10:57:27

标签: asp.net reporting-services ssrs-2008 ssrs-2008-r2 ssrs-2012

我有asp.net应用程序,出于报告目的,我们正在使用SSRS报告。

SSRS报告项目,我正在使用DataSource1进行所有报告。 (考虑数据库名称:DB1)

现在我有了更改DataSource1的ConnectionString属性的新要求(这里我想将DB1更改为DB2) 编程。

有没有开发者有任何想法?请与代码分享。

由于

1 个答案:

答案 0 :(得分:1)

由于数据源未共享,因此它们嵌入在报告rdl文件中,这些文件基本上是XML文件。可能最简单的方法就是直接修改这些xml。 根据报告的复杂程度,更改数据源可以作为简单的字符串替换来完成,但更强大的解决方案是上下文更改 在powershell中使用xml库:

$Rdl = [xml] (gc -path "c:....path to report xx.rdl ...")
$Rdl.Report.DataSources.DataSource |
% {if ($_.GetAttribute("Name") -eq "DataSource1") {
    NewDS = $._ConnectionProperties.ConnectString.Replace("DB1","DB2")
    $._ConnectionProperties.ConnectString=$NewDS}
    }
$Rdl.Save("c:....path to modified rdl ...")

此示例适用于ssrs-2012,不确定数据源的xpath在其他版本中是否相同。