我有一个在datagridview中显示数据的程序。 datagridview中的数据来自数据集中的表。屏幕上的数据看起来不错,所以我决定添加一种打印数据的方法。
我创建了一个新表单,添加了一个reportviewer控件,并设计了该报表。我使用我的数据集作为报告的数据源。
我的问题是,当我去报告我的报告所在的标签时,但它只显示我的报告标题,没有数据。这就像我的数据集中没有数据!
所以,我的问题是,我忘了做什么?数据存在,它显示在一个表单上(使用datagridview)但它没有显示在reportviewer控件上(只有标题)。
实际上没有涉及编码。我刚刚创建了一个新表单,添加了reportviewer控件,设计了报表并告诉它使用我的数据集作为数据源。通常,这对我有用。我无法想象为什么它不起作用。
感谢您提供任何帮助或建议!
这是我的问题的图像
答案 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();