C# 从列表(实体框架)馈送RDLC(本地)报告

C# 从列表(实体框架)馈送RDLC(本地)报告,c#,winforms,entity-framework,report,rdlc,C#,Winforms,Entity Framework,Report,Rdlc,我得到了一个学生的BiningList(实体框架创建的类) 我只想从中输入我的RDLC报告,而不是使用DataSet或存储过程 此类包含多个属性,如: string Name; string FamilyName; string Mid; DateTime Birth; ... 有人能帮我吗?选项1-使用designer 按Ctrl+Shift+A打开“添加新项目””窗口,或从“项目””菜单中选择“添加新项目…”” 从窗口中,选择报告向导 在“报告向导”窗口中,单击“数据源”组合框前面的“新建

我得到了一个学生的
BiningList
(实体框架创建的类)

我只想从中输入我的
RDLC
报告,而不是使用
DataSet
或存储过程

此类包含多个属性,如:

string Name;
string FamilyName;
string Mid;
DateTime Birth;
...
有人能帮我吗?

选项1-使用designer
  • 按Ctrl+Shift+A打开“添加新项目””窗口,或从“项目””菜单中选择“添加新项目…”
  • 从窗口中,选择报告向导
  • 在“报告向导”窗口中,单击“数据源”组合框前面的“新建…”按钮
  • 完成“数据源配置向导”。在第一页中选择对象并单击下一步按钮,然后在下一页中,从树中找到您的业务对象并选中其附近的复选框,然后单击完成按钮关闭数据源配置向导
  • 完成“报告向导”。业务对象将被选择为报告的数据源,因此按照向导操作,单击下一步,然后在“排列字段””页面中,通过拖放将“可用字段””中的一些文件添加到“∑值””列表中。在接下来的页面中,“选择布局”和“选择样式”,然后单击“完成”
  • 打开一个
    表单
    ,然后从工具箱中在表单上放置一个
    报表查看器
    控件
  • 单击打开“报表查看器任务”,然后从组合框中选择“报表”。然后将
    BindingSource
    添加到表单中
  • 双击
    表单
    处理
    加载
    事件,并将此代码添加到事件处理程序:

    var data = db.Students.ToList();        
    this.studentBindingSource.DataSource = data;
    this.reportViewer1.RefreshReport();
    
  • 选项2-使用代码 将
    ReportViewer
    控件放在窗体上,处理窗体的
    Load
    事件并编写此代码:

    var data = db.Students.ToList();
    var reportDataSource1 = new Microsoft.Reporting.WinForms.ReportDataSource();
    reportDataSource1.Name = "DataSet1"; 
    reportDataSource1.Value = data;             
    this.reportViewer1.LocalReport.DataSources.Add(reportDataSource1);
    this.reportViewer1.LocalReport.ReportEmbeddedResource = "ReportSample.Report1.rdlc";
    this.reportViewer1.RefreshReport();
    
    reportDataSource1.Name
    应该是报表定义中的
    DataSet
    的名称。要查看它,请打开报表,并在“报表数据”窗口中的“数据集”节点下查看数据集名称


    如果使用
    ReportEmbeddedResource
    设置报表,则属性应为嵌入式资源中报表的名称。如果它以项目的默认名称空间开始,如果您的报表位于解决方案资源管理器中的文件夹中,则继续使用文件夹名称,最后是报表的名称。

    神奇答案!谢谢