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
what is the problem ??
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:
LocalReport.ReportEmbeddedResource
: The name of the report-embedded resource. LocalReport.ReportPath
: The file system path of the local report.LocalReport.LoadReportDefinition(Stream)
: Loads a report definition for processing using a Stream.LocalReport.LoadReportDefinition(TextReader)
Loads a report definition from the local file system using a TextReader.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.