ReportingService2010.SetDataSourceContents 方法

定義

設定與 DataSource 相關聯的連接屬性。

public:
 void SetDataSourceContents(System::String ^ DataSource, ReportService2010::DataSourceDefinition ^ Definition);
[System.Web.Services.Protocols.SoapDocumentMethod("http://schemas.microsoft.com/sqlserver/reporting/2010/03/01/ReportServer/SetDataSourceContents", ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped, RequestNamespace="http://schemas.microsoft.com/sqlserver/reporting/2010/03/01/ReportServer", ResponseNamespace="http://schemas.microsoft.com/sqlserver/reporting/2010/03/01/ReportServer", Use=System.Web.Services.Description.SoapBindingUse.Literal)]
[System.Web.Services.Protocols.SoapHeader("ServerInfoHeaderValue", Direction=System.Web.Services.Protocols.SoapHeaderDirection.Out)]
[System.Web.Services.Protocols.SoapHeader("TrustedUserHeaderValue")]
public void SetDataSourceContents (string DataSource, ReportService2010.DataSourceDefinition Definition);
[<System.Web.Services.Protocols.SoapDocumentMethod("http://schemas.microsoft.com/sqlserver/reporting/2010/03/01/ReportServer/SetDataSourceContents", ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped, RequestNamespace="http://schemas.microsoft.com/sqlserver/reporting/2010/03/01/ReportServer", ResponseNamespace="http://schemas.microsoft.com/sqlserver/reporting/2010/03/01/ReportServer", Use=System.Web.Services.Description.SoapBindingUse.Literal)>]
[<System.Web.Services.Protocols.SoapHeader("ServerInfoHeaderValue", Direction=System.Web.Services.Protocols.SoapHeaderDirection.Out)>]
[<System.Web.Services.Protocols.SoapHeader("TrustedUserHeaderValue")>]
member this.SetDataSourceContents : string * ReportService2010.DataSourceDefinition -> unit
Public Sub SetDataSourceContents (DataSource As String, Definition As DataSourceDefinition)

參數

DataSource
String

資料來源的完整 URL,包括檔名和副檔名 .rsds。

Definition
DataSourceDefinition

DataSourceDefinition 物件,其中包含資料來源的定義。

屬性

範例

using System;  
using System.Collections.Generic;  
using System.IO;  
using System.Text;  
using System.Web;  
using System.Web.Services;  
using System.Web.Services.Protocols;  

class Sample  
{  
    static void Main(string[] args)  
    {  
        ReportingService2010 rs = new ReportingService2010();  
        rs.Url = "http://<Server Name>/_vti_bin/ReportServer/" +  
            "ReportService2010.asmx";  
        rs.Credentials =   
          System.Net.CredentialCache.DefaultCredentials;  

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

        try  
        {  
            rs.SetDataSourceContents("http://<Server Name>" +  
                "/Docs/Documents/Data Sources/AdventureWorks.rsds",   
                definition);  
        }  

        catch (SoapException e)  
        {  
            Console.WriteLine(e.Detail.OuterXml);  
        }  
    }  
}  
Imports System  
Imports System.IO  
Imports System.Text  
Imports System.Web.Services  
Imports System.Web.Services.Protocols  

Class Sample  

    Public Shared Sub Main()  

        Dim rs As New ReportingService2010()  
        rs.Url = "http://<Server Name>/_vti_bin/ReportServer/" + _  
            "ReportService2010.asmx"  
        rs.Credentials = _  
            System.Net.CredentialCache.DefaultCredentials  

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

        Try  
            rs.SetDataSourceContents("http://<Server Name>" + _  
                "/Docs/Documents/Data Sources/AdventureWorks.rsds", _  
                definition)  

        Catch e As SoapException  
            Console.WriteLine(e.Detail.OuterXml)  
        End Try  

    End Sub  

End Class  

備註

下表顯示標頭以及有關這項作業的權限資訊。

SOAP 標頭使用方式 (In) TrustedUserHeaderValue

(Out) ServerInfoHeaderValue
原生模式所需的許可權 UpdateContent
SharePoint 模式的必要許可權 EditListItems

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

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

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

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

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

這個方法不支援變更 Office 資料連線或副檔名為 .odc 的檔案。 這樣做會導致 rsNotSupported 錯誤。 若是副檔名為 .rsds 或 .odc 的資料來源, rsWrongType 則會傳回錯誤。

適用於