尚未为数据源'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();
}
答案 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));