LINQ 作为Rdlc报表的数据源

曾经在网上看到下面这篇文章,写了个类作为报表数据源,下面是源文章


创建用作数据源的业务对象。


  1. 网站菜单上选择添加新项

  2. 添加新项对话框中,选择,键入文件名“BusinessObjects.cs”,然后单击添加

  3. 单击将该类放入“App_Code”文件夹。新文件将添加到项目并且在 Visual Studio 中自动打开。

  4. BusinessObjects.cs的默认代码替换为以下代码:

    C#

    复制

    using System;

    using System.Collections.Generic;

     

    // Definethe Business Object "Product" with two public properties

    //   of simple datatypes.

    publicclass Product {

       privatestring m_name;

       privateint m_price;

     

       public Product(string name, int price) {

           m_name = name;

           m_price = price;

       }

     

       publicstring Name {

           get {

               return m_name;

           }

       }

     

       publicint Price {

           get {

               return m_price;

           }

       }

    }

     

    // DefineBusiness Object "Merchant" that provides a

    //   GetProducts method that returns acollection of

    //   Product objects.

     

    publicclass Merchant {

       private List<Product>m_products;

     

       public Merchant() {

           m_products = new List<Product>();

    //将下面代码修改为Linq to sql 读取既可完成

           m_products.Add(new Product("Pen", 25));

           m_products.Add(new Product("Pencil", 30));

           m_products.Add(new Product("Notebook", 15));

       }

     

       public List<Product>GetProducts() {

           return m_products;

       }

    }

     

  5. 生成菜单中选择生成解决方案。这将为对象创建程序集,并在您向项目中添加报表后,使业务对象“Product”显示在报表数据窗口中。

    使用报表向导向项目添加报表


  1. 请确保在解决方案资源管理器中选中了顶级网站。

  2. 右击网站并选择添加新项

  3. 添加新项目对话框中,选择报表向导。为报表键入名称,并单击添加

  4. 这将启动报表向导。

  5. 数据集属性页的数据源框中选择全局

  6. 可用数据集框中,确认选中“Merchant (GetProducts)”

  7. 单击下一步

  8. 排列字段页中,执行以下操作:

    1. 名称可用字段拖到行组框。

    2. 价格可用字段拖到框。

  9. 单击两次下一步,然后单击完成

    这将创建 .rdlc文件并在报表设计器中将其打开。所创建的 tablix会立即显示在设计图面中。

  10. 保存 .rdlc文件。

其实,上面红色字下面几行插入数据的代码可以不用。只要在定义publicclass Product时,结构和查询结果temp完全一样

  var temp =  from ob in md.表名 select ob;

ReportViewer1.LocalReport.DataSources.Add(new Microsoft.Reporting.WebForms.ReportDataSource("DataSet1", temp));

如此,Linq to XML,Linq to List,Linq to SQL的输出结果都可以作为Rdlc报表的数据源。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值