1

我正在使用 ReportViewer 控件来设计报告,但是当我运行项目时出现此错误:

A data source instance has not been supplied for the data source 'DataSet1'.

这是我的代码:

            SqlConnection myConnection = new SqlConnection();
            SqlCommand cmd = new SqlCommand();
            SqlDataAdapter sqla = new SqlDataAdapter();
            DataSet ds = new DataSet();
            DataTable dt = new DataTable();

            myConnection.ConnectionString = SqlDataSource1.ConnectionString;

            cmd.Connection = myConnection;
            cmd.CommandText ="select * from users";
            cmd.CommandType = CommandType.Text;
            sqla.SelectCommand = cmd;

            sqla.Fill(dt);
            sqla.Fill(ds);

            ReportViewer1.Reset();
            ReportViewer1.LocalReport.DataSources.Clear();
            ReportViewer1.Visible = true;
            ReportViewer1.LocalReport.ReportPath = "reports/allusers.rdl";
            ReportDataSource rds = new ReportDataSource("ds_users",dt);
            ReportViewer1.LocalReport.DataSources.Add(rds);
            ReportViewer1.ZoomMode = ZoomMode.Percent;
            ReportViewer1.LocalReport.Refresh();

我错过了什么?

4

1 回答 1

1

我在创建 rdl 文件时添加了一个“DataSet1”,所以我需要传递这个数据集的数据来呈现报告。我将这些ReportDataSource行更改为以下内容:

ReportDataSource rds = new ReportDataSource();
rds.Name = "DataSet1";
rds.Value = dt;

这解决了错误消息。

于 2013-03-12T18:33:25.747 回答