private void SetReportDataSource(string reportName, string dataSourceName, string targetFolder) { Log("Setting DataSource For Report: " + reportName); var reference = new DataSourceReference { Reference = $"{targetFolder}/{dataSourceName}" }; var getItemDataSourcesResponse = reportingServicesClient.GetItemDataSources(new GetItemDataSourcesRequest { ItemPath = $"{targetFolder}/{reportName}" }); var dataSource = getItemDataSourcesResponse.DataSources; Log("Report '{0}' has {1} data sources", reportName, dataSource.Length); var dataSources = new DataSource[dataSource.Length]; int i; for (i = 0; i <= dataSource.Length - 1; i++) { var ds = new DataSource { Item = reference, Name = dataSource[i].Name }; dataSources[i] = ds; Log("Report '{0}' setting data source '{1}' to '{2}'", reportName, ds.Name, dataSourceName); } reportingServicesClient.SetItemDataSources(new SetItemDataSourcesRequest { ItemPath = $"{targetFolder}/{reportName}", DataSources = dataSources }); }