語言

ReportingService2005.SetDataSourceContents 方法

定義

設定資料來源的內容。

public:
 void SetDataSourceContents(System::String ^ DataSource, ReportService2005::DataSourceDefinition ^ Definition);
public void SetDataSourceContents(string DataSource, ReportService2005.DataSourceDefinition Definition);
member this.SetDataSourceContents : string * ReportService2005.DataSourceDefinition -> unit
Public Sub SetDataSourceContents (DataSource As String, Definition As DataSourceDefinition)

參數

DataSource
String

資料來源的完整路徑名稱。

Definition
DataSourceDefinition

一個 DataSourceDefinition 包含資料來源定義的物件。

範例

要編譯以下程式碼範例,您必須參考 Reporting Services WSDL 並匯入特定命名空間。 欲了解更多資訊,請參閱編 譯與執行程式碼範例。 以下範例程式碼使用該 SetDataSourceContents 方法來設定一個名為「AdventureWorks」的現有資料來源定義:

Imports System  
Imports System.Web.Services.Protocols  

Class Sample  
   Public Shared Sub Main()  
      Dim rs As New ReportingService2005()  
      rs.Credentials = System.Net.CredentialCache.DefaultCredentials  

      Dim definition As New DataSourceDefinition()  
      definition.CredentialRetrieval = CredentialRetrievalEnum.Integrated  
      definition.ConnectString = "data source=(local);initial catalog=AdventureWorks2000"  
      definition.Enabled = True  
      definition.EnabledSpecified = True  
      definition.Extension = "SQL"  
      definition.ImpersonateUser = False  
      definition.ImpersonateUserSpecified = True  
      definition.Prompt = Nothing  
      definition.WindowsCredentials = False  

      Try  
         rs.SetDataSourceContents("/SampleReports/AdventureWorks", definition)  

      Catch e As SoapException  
         Console.WriteLine(e.Detail.OuterXml)  
      End Try  
   End Sub 'Main  
End Class 'Sample  
using System;  
using System.Web.Services.Protocols;  

class Sample  
{  
   public static void Main()  
   {  
      ReportingService2005 rs = new ReportingService2005();  
      rs.Credentials = System.Net.CredentialCache.DefaultCredentials;  

      DataSourceDefinition definition = new DataSourceDefinition();  
      definition.CredentialRetrieval = CredentialRetrievalEnum.Integrated;  
      definition.ConnectString = "data source=(local);initial catalog=AdventureWorks2000";  
      definition.Enabled = true;  
      definition.EnabledSpecified = true;  
      definition.Extension = "SQL";  
      definition.ImpersonateUser = false;  
      definition.ImpersonateUserSpecified = true;  
      definition.Prompt = null;  
      definition.WindowsCredentials = false;  

      try  
      {  
         rs.SetDataSourceContents( "/SampleReports/AdventureWorks", definition );  
      }  

      catch (SoapException e)  
      {  
         Console.WriteLine(e.Detail.OuterXml);  
      }  
   }  
}  

備註

下表顯示此操作的標頭與權限資訊。

SOAP 標頭 (在) BatchHeaderValue

(出局) ServerInfoHeaderValue
必要權限 UpdateContent

要移除資料來源定義中的屬性,請在 Visual Basic 中將這些屬性的值設為 null (Nothing)。

如果你將資料來源定義的屬性設CredentialRetrieval為Integrated或Prompt,請不要提供 或 PasswordUserName 的值。 這樣做會導致帶有錯誤代碼 rsInvalidElementCombination的 SOAP 例外。

如果你將資料來源定義的屬性設 CredentialRetrieval 為 Integrated 或 Store,你提供的任何 Prompt 屬性值都不會被儲存。

對於訂閱制,可能需要將憑證儲存在報告伺服器資料庫中,以便訂閱能無人值守地執行。

將資料來源定義的屬性設ConnectionString為null(Nothing在 Visual Basic 中)會導致帶有錯誤代碼rsInvalidXML的 SOAP 例外。 如果你不想為 提供值 ConnectionString,請將其值設為空字串(“”)。

適用於