DataSource未添加到ReportViewer

时间:2013-02-28 17:26:24

标签: c# asp.net datatable dataset reportviewer

我正在尝试配置ReportViewer但无法使其正常工作

我有以下DataSet:

DataSet

这是数据集中的查询:

SELECT        DataTime, DataValue
FROM            PointValue
WHERE        (DataTime >= @FromDate) AND (DataTime <= @ToDate)

我也有报告rdlc:

Reportrdlc

点击时,我有一个运行此代码的按钮:

var myDataTable = new i96X_dataDataSet.PointValueDataTable();
var myTableAdapter = new PointValueTableAdapter();
myTableAdapter.Fill(myDataTable, Convert.ToDateTime("2010-01-20T00:00:00.000"), Convert.ToDateTime("2010-01-21T00:00:00.000"));
var rds = new ReportDataSource("i96X_dataDataSet_PointValue", myDataTable as DataTable);
ReportViewer1.LocalReport.DataSources.Clear();
ReportViewer1.LocalReport.DataSources.Add(rds);
ReportViewer1.LocalReport.Refresh();

但是,当我运行它时,在ReportViewer中写道:

尚未为数据源'DataSet1'提供数据源实例。

看起来正在收集正确的数据,因为当我调试时,我看到计数为5990:

Debug

似乎没有添加数据源。

显然我做错了什么。此外,有没有更简单的方法来实现这一目标?这似乎很多工作,我一整天都在阅读文章。我想做的就是能够以某种方式调整附加到SQL数据库的SELECT语句,并将该数据检索到报表查看器中。

感谢您提供任何指导,

儒略

1 个答案:

答案 0 :(得分:2)

听起来好像您的报告是基于名为DataSet1的数据源构建的。

尝试更改此行....

var rds = new ReportDataSource("i96X_dataDataSet_PointValue", myDataTable as DataTable);

...到这一行...

var rds = new ReportDataSource("DataSet1", myDataTable as DataTable);

或者,您可以修改报表并在报表定义中重命名数据源。如果您有许多报告希望使用相同的数据源,那么这可能更有意义。