public NDatasourceReferenceCollection LookupDataSourceReferences(string itemPath) { NDatasourceReferenceCollection dataSourcePaths = new NDatasourceReferenceCollection(); DataSource[] dataSources = this.ReportingServiceClient.GetItemDataSources(itemPath); foreach (DataSource ds in dataSources) { DataSourceReference refDS = ds.Item as DataSourceReference; if (refDS != null) { NDatasourceReference nRef = new NDatasourceReference(ds.Name, refDS.Reference); dataSourcePaths.Add(nRef); } } return dataSourcePaths; }
public void AssignDataSourceReferences(string itemPath, NDatasourceReferenceCollection dataSourceReferences) { List<DataSource> dataSourceList = new List<DataSource>(); /////////////////////////////////////////////////////////////////////////////////////// // Note: According to documentation, only datasources that are being modified need to // be included. /////////////////////////////////////////////////////////////////////////////////////// // Add the links. foreach (NDatasourceReference modifiedReference in dataSourceReferences) { DataSourceReference newDataSourceReference = new DataSourceReference(); newDataSourceReference.Reference = modifiedReference.DatasourcePath; DataSource newDataSource = new DataSource(); newDataSource.Name = modifiedReference.Name; newDataSource.Item = newDataSourceReference; dataSourceList.Add(newDataSource); } DataSource[] dataSources = new DataSource[dataSourceList.Count]; dataSourceList.CopyTo(dataSources); this.ReportingServiceClient.SetItemDataSources(itemPath, dataSources); }