2012-04-24 106 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')。