ReportingService2005.SetDataSourceContents(String, DataSourceDefinition) 方法

定義

設定資料來源的內容。

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 標頭 (In) BatchHeaderValue

(Out) ServerInfoHeaderValue
必要權限 UpdateContent

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

如果您將 CredentialRetrieval 資料來源定義的屬性設定為 Integrated 或,則 Prompt 請勿提供或的值 UserName Password 。 這樣做會導致 SOAP 例外狀況,並產生錯誤碼 rsInvalidElementCombination

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

使用訂閱時,可能需要將認證儲存在報表伺服器資料庫中,才能讓訂閱自動執行。

ConnectionString Visual Basic) 中,將資料來源定義的屬性設定為 (,會 null Nothing 產生包含錯誤碼的 SOAP 例外狀況 rsInvalidXML 。 如果您不想要提供的值 ConnectionString ,請將其值設定為空字串 ( "" ) 。

適用於