2012-04-24 80 views
1

我有一个reportviewer。我想动态生成一个数据表并将其设置为我的reportviewer的数据源。报表查看器不显示数据。我的代码如下:Reportviewer not displayed datatable

 ReportViewer1.ProcessingMode = ProcessingMode.Local; 
     ReportViewer1.LocalReport.ReportPath = "report1.rdlc"; 
     ReportDataSource rdS = new ReportDataSource("report", dt); 
     ReportViewer1.LocalReport.DataSources.Add(rdS); 

有什么建议吗?

+0

这里可能会发生太多事情。报告中是否有参数?数据库是否与用于设计报告的数据集兼容? – Candide 2012-04-24 13:06:12

+0

没有参数。这是一个简单的报告,我想将数据源设置为数据表。另外,我没有使用任何数据集。我只是简单地取数据表并显示它 – bhavna 2012-04-25 05:34:00

+0

那么,你不能仅仅传递一个数据源,而没有将它定义为报告中的数据集。另外,确保数据源report的名称与报告中的数据集名称相匹配。 – Candide 2012-04-25 06:51:32

回答

2

试试这个:

ReportViewer1.Visible = true; 
ReportViewer1.LocalReport.ReportPath = "report1.rdlc"; 
var datasource = new ReportDataSource("report", dt); 
ReportViewer1.LocalReport.DataSources.Clear(); 
ReportViewer1.LocalReport.DataSources.Add(datasource); 
ReportViewer1.LocalReport.Refresh(); 
1

使用此代码

ReportViewer viewer = new ReportViewer(); 

viewer.ProcessingMode = ProcessingMode.Local; 
viewer.LocalReport.ReportEmbeddedResource = @"D:\Projects\NIKHIL\NIKHIL\Report3.rdlc; viewer.LocalReport.ReportPath = @"D:\Projects\NIKHIL\NIKHIL\Report3.rdlc; viewer.LocalReport.DataSources.Clear(); 
viewer.LocalReport.DataSources.Add(new ReportDataSource("DataSet1", ds.Tables[0])); viewer.LocalReport.Refresh(); 

byteViewer = viewer.LocalReport.Render(reportType, deviceInfo, out mimeType, out encoding, out extension, out streamIds, out warnings); 
-1

如果的ReportViewer不显示数据(只是空白页): 确保:确保你的数据表中的列名相匹配的在DataSource(数据库)中定义的那些。 (例如:如果数据库有一个名为'name_first'的columnName,那么您的DataTable也需要将columnName命名为'name_first')。