使用 .NET 類作為 SSRS RDLC 的數據源
我在 Visual Studio 2010 中有一個 MVC4 應用程序,其中包含大量類。我正在嘗試使用它們作為報表定義語言客戶端 ( RDLC ) 文件的數據源傳入。但是我無法在數據源設計器的任何地方從我的程序集中訪問這些類
根據 MSDN Walkthrough on Using a Business Object Data Source with the ReportViewer Web Server Control in Local Processing Mode,我應該可以在 Dataset Properties 頁面中這樣做
在“數據集屬性”頁面的“數據源”框中,選擇global。
根據這個關於如何在報告 (.rdlc) 中使用對像數據源的 Stackoverflow問題,當在數據集屬性頁面中時,我應該能夠像這樣創建一個新的數據源:
創建新數據源:
- 選擇對象並點擊下一步。
- 瀏覽解決方案樹並選擇要綁定的類。
- 點擊完成。
但這些都不是作為選項存在的……
當我創建一個新數據集時,數據源下沒有顯示任何內容:
當我點擊新建創建一個新數據源時,我只是得到一個連接嚮導,它強制我連接到數據庫:
我在哪裡可以從我的程序集中添加類?
作為一個簡單的例子,下面是一個我希望顯示在程序集中的對象範例:
Public Class Employee Public Property Name As String Public Property ID As Integer End Class我最終希望以程式方式填充此資訊,如下所示:
Dim lr As New LocalReport lr.ReportPath = Server.MapPath("~\Reports\Report1.rdlc") lr.DataSources.Add(New ReportDataSource("Data", New Employee("Kyle",27)))
這裡有幾個解決方案,但我更喜歡第二個。
解決方案1 (好的)
由於這似乎是 MVC Web 應用程序項目類型本身的錯誤,您可以將報告添加到不同的項目類型(如類庫)。如文章Visual Studio 2010 Report Viewer - Object Datasource中所述,只需為項目創建一個單獨的庫並在其中添加 rdlc 文件。數據源配置嚮導現在應該如下所示:
解決方案2 (更好)
如Can’t see or add Website Data Sources in RDLC report in ASP.NET MVC中所示,您可以在 MVC 項目的任何位置添加一個aspx頁面,以誘使 Visual Studio 拉入正確的設計時庫。
只需執行以下操作:
- 關閉所有視窗
- 清潔和重建解決方案
- 將 WebForm1.aspx 添加到項目中
- 打開 RDLC 文件並從下拉列表中選擇一個數據源:



