我有asp.net应用程序,出于报告目的,我们正在使用SSRS报告。
SSRS报告项目,我正在使用DataSource1进行所有报告。 (考虑数据库名称:DB1)
现在我有了更改DataSource1的ConnectionString属性的新要求(这里我想将DB1更改为DB2) 编程。
有没有开发者有任何想法?请与代码分享。
由于
答案 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在其他版本中是否相同。