我有asp.net应用程序,出于报告目的,我们使用SSRS报告。
SSRS报告项目,我正在为所有报告使用DataSource1。 (考虑数据库名称:DB1)
如何通过编程方式更改DataSource1的ConnectionString属性(在这里要将DB1更改为DB2?
由于不共享数据源,它们被嵌入到报告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在其他版本中是否相同。