使用 RDLC 的报告无法加载数据集

Posted

技术标签:

【中文标题】使用 RDLC 的报告无法加载数据集【英文标题】:Report using RDLC can't load dataset 【发布时间】:2014-08-20 02:51:25 【问题描述】:

我正在尝试使用RDLC 文件进行报告。我正在关注此链接:

http://www.mindstick.com/Articles/13169999-ef3b-496c-b502-caef973c3bb2/?Using%20ReportViewer%20in%20WinForms%20C

所以我创建了一个 RDLC 文件,并将我的 tax 对象导入到此报告中,我的税务对象的结构如下:

public partial class Tax
    
        public Tax()
        
            this.Innovices = new HashSet<Inovice>();
        
        [DisplayName("شناسه")]
        public int Id  get; set; 
        [DisplayName("عوارض شهرداری")]
        public Nullable<double> MunicipalTax  get; set; 
        [DisplayName("مالیات بر ارزش افزوده")]
        public Nullable<double> AdditionalTax  get; set; 
        [DisplayName("سال مالی")]
        public string Year  get; set; 

        public virtual ICollection<Inovice> Innovices  get; set; 
    

在这里您可以看到绑定对象到我的报告:

我在 y 表单中放置了一个报告查看器,我在 `formload 中编写了这段代码

 private void Form1_Load(object sender, EventArgs e)
        
            InvoiceRepository.TaxRepository obj = new TaxRepository();
            List<InnoviceDomainClass.Tax> list = obj.GetAll().ToList();

            reportViewer1.LocalReport.DataSources.Clear(); //clear report
            reportViewer1.LocalReport.ReportEmbeddedResource = "Factor169.Report.Report1.rdlc";
                // bind reportviewer with .rdlc

            Microsoft.Reporting.WinForms.ReportDataSource dataset =
                new Microsoft.Reporting.WinForms.ReportDataSource("Dataset1", list); // set the datasource
            reportViewer1.LocalReport.DataSources.Add(dataset);
            dataset.Value = list;

            reportViewer1.LocalReport.Refresh();
            reportViewer1.RefreshReport(); // refresh report
        `

但是执行后的结果是这样的:why ?

【问题讨论】:

【参考方案1】:
Microsoft.Reporting.WinForms.ReportDataSource dataset =
            new Microsoft.Reporting.WinForms.ReportDataSource("Dataset1", list); 

应该是DataSet1

ReportDataSource("DataSet1", list); //The "s"

报表数据源的名称必须与报表中的数据集相同。

【讨论】:

以上是关于使用 RDLC 的报告无法加载数据集的主要内容,如果未能解决你的问题,请参考以下文章

在 VB.Net 中手动加载 Reportviewer 中的 .rdlc 报告

如何加快加载数据集

简化查询以用作 winform rdlc 报告中的数据集

报告 rdlc 中的外部图像

RDLC在程序集中重新初始化静态数据

发生错误:“生成报告时无法加载文件或程序集 'Microsoft.Reportviewer.Winforms Version=10.0.0.0”