0

我有一个在 datagridview 中显示数据的程序。datagridview 中的数据来自数据集中的表。数据在屏幕上看起来不错,所以我决定添加一种打印数据的方法。

我创建了一个新表单,添加了一个报表查看器控件,并设计了报表。我使用我的数据集作为报告的数据源。

我的问题是,当我转到我的报告所在的报告选项卡时,它显示我的报告只有标题,没有数据。就像我的数据集中没有数据一样!

所以,我的问题是,我忘了做什么?数据在那里,它显示在一个表单上(使用 datagridview),但它没有显示在 reportviewer 控件上(只有标题)。

真的没有涉及编码。我刚刚制作了一个新表单,添加了 reportviewer 控件,设计了报表并告诉它使用我的数据集作为数据源。通常,这对我有用。我无法想象为什么它不起作用。

感谢您的任何帮助或建议!

这是我的问题的图像

http://i.stack.imgur.com/M6NrX.jpg

4

2 回答 2

0

这很可能是以下两个原因之一:
1. 您需要在报表数据源中提供 TableName(查看Datatable 作为 ReportViewer 中的数据源)
2. 或者您需要调用 RefreshReport()。

于 2012-08-01T14:11:52.857 回答
0

https://www.youtube.com/watch?v=hkDIDTNbA6M

在调用报告之前再次将数据从数据库添加到您的数据集中

SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=D:\typroject\TYPROJECT\TYPROJECT\logindb.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");

    billDataSet b1 = new billDataSet();

    SqlDataAdapter s = new SqlDataAdapter("select * from TblOrder",con);

    s.Fill(b1,b1.Tables[0].TableName);

    ReportDataSource rds = new ReportDataSource("orders",b1.Tables[0]);

    this.a.LocalReport.DataSources.Clear();

    this.reportViewer1.LocalReport.DataSources.Add(rds);

    this.reportViewer1.LocalReport.Refresh();

    this.TblOrderTableAdapter.Fill(this.billDataSet.TblOrder, d1.ToString(), 

    d2.ToString(), companyid);

    this.reportViewer1.RefreshReport();
于 2016-03-02T06:47:44.677 回答