如何将对象属性传递给报告RDLCC#

问题描述

我想用对象的属性填充报表页面并将其显示在报表查看器中。 我之前在报表向导中选择了这个对象并生成一个数据集。

Report Designer

现在我正在尝试使用此代码将值添加到报告中。 我将该单个对象放入列表中,因为“ReportDataSource”不接受对象。 但是当我运行它时,报告是空白的,并且没有显示值。 我究竟做错了什么?我刚接触报告,希望有人能帮助我。

    private void button2_Click(object sender,EventArgs e)
    {
        MyObject myobject = new MyObject();
        myobject.Artikelnr = "12345";
        myobject.Aussehen = 1;
        myobject.Bemerkungen = "cool";

        List<MyObject> objectlist = new List<MyObject>();
        objectlist.Add(myobject);

        ReportDataSource rds = new ReportDataSource("DataSet1",objectlist); 
            
        reportViewer1.LocalReport.DataSources.Add(rds);
        reportViewer1.Refresh();
    }

解决方法

这个link很有帮助,你可以下载这个项目并测试一下。在添加数据源之前,最好先将其清除。

 private void button2_Click(object sender,EventArgs e)
    {
        MyObject myobject = new MyObject();
        myobject.Artikelnr = "12345";
        myobject.Aussehen = 1;
        myobject.Bemerkungen = "cool";

        List<MyObject> objectlist = new List<MyObject>();
        objectlist.Add(myobject);

        ReportDataSource rds = new ReportDataSource("DataSet1",objectlist); 

        ReportViewer1.LocalReport.DataSources.Clear();  

        reportViewer1.LocalReport.DataSources.Add(rds);
        reportViewer1.Refresh();
    }
,

确保您使用工具栏上的绿色刷新箭头刷新报告和/或删除所有 .data 文件。 Visual Studio 缓存数据结果并且仅在参数更改时刷新,数据集才会刷新。您可能会遇到缓存问题。