Вам необходимо создать ReportDataSource и установить его свойство Value
- например, DataTable
и IEnumerable
s являются поддерживаемыми источниками
Какпример, и предполагается, что существует метод для возврата DataSet , с одним DataTable
, соответствующим столбцам, необходимым для вашего отчета:
DataSet ds = SomeMethodToRetrieveDataSet(); // e.g. via DataAdapter
// If your report needs parameters, they need to be set ...
ReportParameter[] parameters = new ReportParameter[...];
ReportDataSource reportDataSource = new ReportDataSource();
// Must match the DataSource in the RDLC
reportDataSource.Name = "ReportData";
reportDataSource.Value = ds.Tables[0];
// Add any parameters to the collection
reportViewer1.LocalReport.SetParameters(parameters);
reportViewer1.LocalReport.DataSources.Add(reportDataSource);
reportViewer1.DataBind();
Обратите внимание, что часто проще простовстроить RDLC в вашу сборку, вместо того, чтобы сохранять отдельные файлы RDLC.Сделайте это, выбрав Build Action
в RDLC как Embedded Resource
, а затем вы можете установить свойство ReportEmbeddedResource
:
reportViewer1.LocalReport.ReportEmbeddedResource =
"MyOrganisation.MyAssembly.NameSpace.MyReportName.rdlc";
Обратите внимание, что строка ресурса должна включать полное имя ресурса(включая сборку).