未知的数据源

时间:2014-03-04 13:26:14

标签: c# reportviewer

尚未为数据源'dataset1'提供数据源实例。这会出现在我的报告查看器中。

private void button1_Click(object sender, EventArgs e)
    {
        DataSet1 dataSet = new DataSet1();

        DataTable table = dataSet.Tables.Add("Language");
        table.Columns.Add("A1", Type.GetType("System.String"));
        table.Columns.Add("A2", Type.GetType("System.String"));
        table.Columns.Add("A3", Type.GetType("System.String"));
        DataRow row;

        row = table.NewRow();
        row["A1"] = textBox1.Text;
        row["A2"] = textBox2.Text;
        row["A3"] = textBox3.Text;
        table.Rows.Add(row);

       //table.Fill(dataSet, "Language");
       // MyReport.ProcessingMode = MyReport.Local;
       MyReport.LocalReport.DataSources.Clear();
       MyReport.LocalReport.DataSources.Add(new ReportDataSource("DT", dataSet.Tables[1]));
      // MyReport.LocalReport.DataSources.Add(new Microsoft.Reporting.WinForms.ReportDataSource());
       //MyReport.LocalReport.DataSources.Add(new ReportDataSource("DT", table));
       MyReport.LocalReport.Refresh();
       MyReport.RefreshReport();
}

1 个答案:

答案 0 :(得分:1)

您的表实际上是在索引0上,而不是1.如果报表需要名为“dataset1”的DataSet,请确保将其命名为。

改变这一点。

MyReport.LocalReport.DataSources.Add(new ReportDataSource("DT", dataSet.Tables[1]));

对此:

MyReport.LocalReport.DataSources.Add(new ReportDataSource("dataset1", dataSet.Tables[0]));

另外,您无需创建DataSet即可向其添加DataTable并通过其索引传递它。您可以创建一个单独的DataTable,就是这样:

DataTable table = new DataTable("Language");
...
...
MyReport.LocalReport.DataSources.Add(new ReportDataSource("dataset1", table));