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

Report using RDLC can't load dataset

提问人:Mehrdad 提问时间:6/30/2014 最后编辑:Mehrdad 更新时间:2/13/2015 访问量:2180

问:

我正在尝试使用文件制作报告。我正在点击这个链接:RDLC

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

所以我创建了一个 RDLC 文件,将我的对象导入到这个报告中,我的税收 ubject 的结构如下: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; }
    }

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

enter image description here

我把一个 reportviewer 放在 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
        }`

但是执行后的结果是这样的:为什么?enter image description here

C# WinForms 服务报告错误 报告

评论


答:

2赞 The One 6/30/2014 #1
Microsoft.Reporting.WinForms.ReportDataSource dataset =
            new Microsoft.Reporting.WinForms.ReportDataSource("Dataset1", list); 

应为 DataSet1

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

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