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 に答える