3

我正在搜索关于Datatableas datasourcein的最后一个问题ReportViewer,我发现这是解决方案

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();

但我得到了这张图片

在此处输入图像描述

问题是什么 ??

4

3 回答 3

5

您似乎忘记为报表查看器控件设置报表源。您可以使用以下任一选项设置报告源:

例如,我假设您在项目中添加了一个报告,因此您可以通过以下方式在报告查看器中显示它:

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

您也可以使用设计器简单地设置报表查看器的报表。在您的表单上放置一个报表查看器,然后单击右上角的箭头以打开报表查看器的智能标记窗口,然后从组合框中选择一个报表。

在此处输入图像描述

于 2015-12-24T22:59:35.820 回答
0

您可以添加如下来源

LocalReport report = new LocalReport();

string startupPath = Environment.CurrentDirectory;
report.ReportPath = startupPath + @"\RDCLTemplate.rdlc";
report.Refresh();
于 2015-12-24T22:36:42.737 回答
0

如果我没记错的话,您正在使用的 ReportDataSource ctor 需要第一个参数中的数据源,即命名数据源。你没有提供这个,你需要 DataTable 名称。

将您的代码更新为:

DataTable dt = new DataTable();
dt.TableName = "myDataTable";
//Fill Datatable
ReportDataSource source = new ReportDataSource("myDataTable", dt);
于 2015-12-24T22:44:15.447 回答