向 VS 2013 中的 Reporting Services 设计器提供来自代码类的数据
Posted
技术标签:
【中文标题】向 VS 2013 中的 Reporting Services 设计器提供来自代码类的数据【英文标题】:Provide data from a code class to the Reporting Services designer in VS 2013 【发布时间】:2015-01-29 09:49:24 【问题描述】:我正在尝试创建本地 SQL Server Reporting Services 报告(.rdlc
文件)并将此报告连接到我在代码中生成的一些数据集(无直接 SQL Server 连接)。
我创建了一个 ReportDataProvider
类,其中包含一些针对各种标准集返回 IList<T>
的实例方法 - 但我似乎无法找到一种方法让这些数据提供方法显示在 Visual Studio 2013 内的 Reporting Services 设计器中.
当我查看在 Report Data
资源管理器窗口中单击 Datasets
节点上的 Add DataSet
后出现的对话框时,我看到那里列出了很多我的类 - 但不是我的数据提供者类。
为了让它出现在可能的数据源的下拉列表中,我有什么特别需要注意的吗(创建类static
?用一些属性装饰它?)?我尝试了各种方法,但未能找到任何方法让它正常工作......
【问题讨论】:
【参考方案1】:我遇到了同样的问题,并发现了另一个可能很容易错过的案例。在我的情况下,包含 List 返回方法的类有一个带有必需参数的构造函数,并且它没有显示在 DataSource 下拉列表中。在我向我的类添加无参数构造函数并重建后,它现在是可见的!
这可能与 RDLC UI 分析合格方法的方式有关,它可能会尝试在流程中实例化类。
【讨论】:
【参考方案2】:遇到了类似的问题。发现如果设法获得没有错误的构建,那么我的命名空间似乎可以从数据源中选择。
【讨论】:
【参考方案3】:我做了一些研究,并尝试了不同的方法来添加类。不幸的是,您在此设计器中看不到静态类。我尝试了不同的方法,但没有成功。
对于非静态类,本手册每次都适用于我,即使是 Interfaces
,如 IList
,但我在这里不代表它:
-
确保您的数据报告类的命名空间在您的项目中与 .rdlc 文件可用。可以是您需要添加参考。
编写数据报表类并重建解决方案。
在您的 VS 中关闭并重新打开 .rdlc 文件。
我使用的是 VS 2013 Ultimate Update 2。
这是我的课:
using System.Collections.Generic;
namespace YourReportNamespace
public class ReportClass
public List<string> TestReportData()
return new List<string>();
public static List<string> StaticTestReportData()
return new List<string>();
public class ReportWithFieldsClass
private List<string> Data = new List<string>();
public List<string> TestReportData()
return Data;
public List<string> TestReportData2()
return Data;
public static List<string> StaticTestReportData()
return new List<string>();
public static class ReportWithFieldsStaticClass //This class will not appear
private static List<string> Data = new List<string>();
public static List<string> StaticTestReportDataFromField()
return Data;
public static List<string> StaticTestReportData()
return new List<string>();
这是我通过手册后在设计师那里得到的:
【讨论】:
感谢您的努力 - 不幸的是,这几乎也是我尝试过的 - 但它对我从来没有用过。无论我是否创建类或方法static
,无论我是否将它们与报告放在同一个程序集中或不同(引用)的程序集中 - 我从来没有看到我的类被称为有效的 DataSource
。 ....
当我四处搜索时,我发现了这个answer。也许这是您问题的答案?至于你使用泛型类型。以上是关于向 VS 2013 中的 Reporting Services 设计器提供来自代码类的数据的主要内容,如果未能解决你的问题,请参考以下文章
SQL Server 2008 VS 2005 Reporting Services 整合SharePoint 2007 支持比较Part1
是否可以拥有向后兼容 vs2013 和 vs2017 的 vs 项目?