在 ASP.NET 中使用 ReportViewer 控件時,報表設計階段通常需一個 XSD 資料集結構描述以利拖拉欄位。但在執行期,我們往往需要動態建立資料並指派給報表。以下示範如何以程式碼完成此操作。
// 1. 建立強型別 DataSet 實例 (對應報表設計時的 .xsd)
DataSet1 ds = new DataSet1();
// 2. 新增一筆測試資料
DataRow dr = ds.TABLE2.NewRow();
dr[0] = 1;
dr[1] = 2;
dr[2] = 3;
ds.TABLE2.Rows.Add(dr);
// 3. 建立 ReportDataSource,名稱需與報表 .rdlc 中定義的 DataSet 名稱一致
// 格式通常為 "DataSet名稱_Table名稱"
Microsoft.Reporting.WebForms.ReportDataSource rds =
new Microsoft.Reporting.WebForms.ReportDataSource("DataSet1_TABLE2", ds.TABLE2);
// 4. 綁定至 ReportViewer
ReportViewer1.LocalReport.DataSources.Clear();
ReportViewer1.LocalReport.DataSources.Add(rds);
// 5. (可選) 重新整理報表
ReportViewer1.LocalReport.Refresh();
DataSet1),確保欄位名稱、型別與報表定義一致。ReportDataSource 建構子的第一個參數必須完全等於 .rdlc 中 DataSet 的 Name 屬性值(可在報表資料窗格中查看)。ReportDataSource 並全部加入 DataSources 集合。