Share via


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 标头 (In) BatchHeaderValue

(Out) ServerInfoHeaderValue
所需的权限 UpdateContent

若要删除属于数据源定义的属性,请在 Visual Basic) 中将这些属性的值设置为 null (Nothing

如果将数据源定义的 属性设置为 CredentialRetrievalIntegratedPrompt,请不要为 UserNamePassword提供值。 这样做会导致 SOAP 异常, rsInvalidElementCombination错误代码为 。

如果将数据源定义的 属性设置为 CredentialRetrievalIntegratedStore,则不会保存为 Prompt 属性提供的任何值。

对于订阅,可能需要将凭据存储在报表服务器数据库中,以便订阅可以无人参与地运行。

ConnectionString 数据源定义的 属性设置为 null 在 Visual Basic) 中 (Nothing 会导致 SOAP 异常,错误代码 rsInvalidXML为 。 如果不想为 ConnectionString提供值,请将其值设置为空字符串 (“”) 。

适用于