我的数据集中的数据没有显示在我的ReportViewer中?

时间:2012-08-01 14:00:32

标签: c# visual-studio-2010 sql-server-2008 reporting

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

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

我的问题是,当我去报告我的报告所在的标签时,但它只显示我的报告标题,没有数据。这就像我的数据集中没有数据!

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

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

感谢您提供任何帮助或建议!

这是我的问题的图像

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

2 个答案:

答案 0 :(得分:0)

最有可能出现以下两种原因之一:
1.您需要在报表数据源中提供TableName(请查看Datatable as datasource in ReportViewer
2.或者你需要调用RefreshReport()。

答案 1 :(得分:0)

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

再次在调用report

之前,将数据从数据库添加到数据集中
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();