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

问题描述 投票:1回答:1

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

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

如何通过编程方式更改DataSource1的ConnectionString属性(在这里要将DB1更改为DB2?

asp.net reporting-services ssrs-2008 ssrs-2008-r2 ssrs-2012
1个回答
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在其他版本中是否相同。

© www.soinside.com 2019 - 2024. All rights reserved.