1

我有asp.net應用程序並且爲了報告目的,我們正在使用SSRS報告。以編程方式更新/更改SSRS數據源(不共享)

SSRS報告項目,我使用DataSource1所有報告。 (考慮數據庫名稱:DB1)

現在我有新的要求,以編程方式更改DataSource1的ConnectionString屬性(這裏我想將DB1更改爲DB2) 。

是否有任何開發人員有任何想法?請與代碼分享。

由於

回答

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到數據源在其他版本中是否相同。

相關問題