我在Visual Studio 2010中有一个包含大量类的MVC4应用程序。我尝试使用它们作为报表定义语言客户端(RDLC)文件的DataSource传入。但我无法从数据源设计器中的任何位置访问我的程序集中的类
根据Using a Business Object Data Source with the ReportViewer Web Server Control in Local Processing Mode上的MSDN演练,我应该可以在“数据集属性”页面中执行此操作
在数据集属性页面的数据源框中,选择全局。
根据How to use an Object data source in report (.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)))
答案 0 :(得分:12)
以下是一些解决方案,但我更喜欢第二种解决方案。
由于这似乎是MVC Web应用程序项目类型本身的错误,您可以将报告添加到其他项目类型(如类库)。如帖子Visual Studio 2010 Report Viewer - Object Datasource中所述,只需为项目创建一个单独的库并在其中添加rdlc文件。现在,数据源配置向导应如下所示:
如Can't see or add Website Data Sources in RDLC report in ASP.NET MVC所示,您只需在MVC项目的任何位置添加 aspx 页面,即可让Visual Studio吸引正确的设计时库。
请执行以下操作:
打开RDLC文件并从下拉列表中选择一个DataSource:
答案 1 :(得分:1)
从项目**目录的Bin和Obj文件夹中删除所有内容和文件夹,然后重新构建解决方案。
在添加Asp .Net mvc5的Visual Studio 2015中遇到了同样的问题,同时添加了RDLC报告的“ **数据源”。
从我当前的项目添加数据源时,它运行良好。
但是突然在新报告中,我没有在RDLC报告数据中找到我的项目所需/更新/新类作为数据源。
然后,我刚刚从当前项目的Bin和Obj文件夹中删除了所有内容和文件夹,它现在运行良好。