1
我有asp.net應用程序並且爲了報告目的,我們正在使用SSRS報告。以編程方式更新/更改SSRS數據源(不共享)
SSRS報告項目,我使用DataSource1所有報告。 (考慮數據庫名稱:DB1)
現在我有新的要求,以編程方式更改DataSource1的ConnectionString屬性(這裏我想將DB1更改爲DB2) 。
是否有任何開發人員有任何想法?請與代碼分享。
由於
我有asp.net應用程序並且爲了報告目的,我們正在使用SSRS報告。以編程方式更新/更改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到數據源在其他版本中是否相同。