how to set Datatable as datasource in ReportViewer

18,447

It seems you have forgotten to set the report source for your report viewer control. You can set the report source using either of this options:

For example, I suppose you have added a report to your project, so you can show it in the report viewer this way:

var reportDataSource1 = new ReportDataSource("NameOfReportDataSet", YourDataTable);
this.reportViewer1.LocalReport.DataSources.Add(reportDataSource1);
this.reportViewer1.LocalReport.ReportEmbeddedResource = "Namespace.ReportName.rdlc";
this.reportViewer1.RefreshReport();

Also you can simply set the report of the report viewer using designer. Put a report viewer on your form and click on top-right arrow to open the smart tag window of report viewer, then choose a report from combo box.

enter image description here

Share:
18,447
ala sawa'deh
Author by

ala sawa'deh

I'm computer system engineering

Updated on June 28, 2022

Comments

  • ala sawa'deh
    ala sawa'deh almost 2 years

    I was searching in the last question about Datatable as datasource in ReportViewer and i found this as solution

    DataTable table = new DataTable();
    table.Columns.Add("value", typeof(string));
    table.Columns.Add("price", typeof(string));
    table.Columns.Add("quantity", typeof(string));
    
    table.Rows.Add("test1","10","20");
    table.Rows.Add("test2", "10", "20");
    
    reportViewer1.LocalReport.DataSources.Clear();
    
    ReportDataSource rprtDTSource = new ReportDataSource("TITLE",table);
    
    reportViewer1.LocalReport.DataSources.Add(rprtDTSource);
    reportViewer1.RefreshReport();
    

    but i get this image as result

    enter image description here

    what is the problem ??