logo 广告
Loading...
 导航 所在位置:论坛首页 -> ┈┋电脑网络┋┈ -> Asp/Asp.Net教程 -> LINQ下使用三层架构的数据统计以及一个主从报表
回复
标题:LINQ下使用三层架构的数据统计以及一个主从报表收藏 编辑 删除 楼主 | 上一篇 下一篇
薰衣草
头像
等级:职业侠客
权限:普通用户
积分:55
金钱:2808
声望:88
经验:88
发帖数:692
注册:2007年10月28日
资料 短消息2008-4-12 11:54:14
以前,我们要在某个报表中显示统计信息一般有两种方法:1通过一个SQL查询——我们可以向数据库发出一个额外的查询来为某个特定的类别计算统计信息。SQL包含一系列的聚合函数,并由GROUP BY子句指定应该根据什么数据来进行统计。2在表示层中统计已经获取的信息,大家可以参考这个http://reeezak.cnblogs.com/archive/2006/07/09/446444.html.

    然而这两个方法都有他们的缺点:

    第一种方法很明显,他增加了一次到数据库的往返,因为在获取报表信息的时候我们已经对数据库进行了一次访问,而我们要获得的统计信息可以从报表中获取。而且无法获取更加复杂的业务统计。

    第二种方法则没有很好的让层次划分出来,我们更加希望表示层中仅仅使用方法而不要去设计这些方法。(尤其是一些业务规则,比如NBA中有“球员效率”这项数据,但如果不是很熟悉这项业务的程序员是不知道这个效率是如何计算的。)

    既然我们使用了分层架构,就应该把这些职能分开,表示层的设计者只需要设计UI,了解方法的名称就可以了。具体的业务计算应该留下来给业务逻辑层的设计者去设计。

    有了LINQ我们就可以把这些东西都放到业务层去了,因为数据操作已经对象化,在逻辑层中就可以方便地统计数据并且直接在表示层调用这样的方法。

    按部就班的做

    1我们需要一个下来列表来选择门类,所以我们需要一个门类列表,在Productbll中添加一个新的方法GetCategory代码如下:

 [System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, true)]

    public IQueryable GetCategory()

    {

        var category = from p in db.Categories

                      select p;

        return category;

}

    2.代码很简单我就不解释了,由于我们的重点不是这个门类选择列表,所以我直接选择了全部字段,其实只要ID和Name两个字段就可以了。新建一个WEB窗体,添加一个下拉列表,在自动回送上打勾,选择新建数据源。

    3.数据源选择对象数据源,选择Productbll,方法选择GetCategory,点击完成。字段显示填写CategoryName,字段值填写CategoryID。

签名

2008-4-12 11:54:14 顶部
第1页 共页 共0个回复     <<    >>    
 快速回复
  • 支持UBB,HTML标签

  • 高级回复

  • 操作选项:评分 加精 解精 奖惩 设专题 设公告 解公告 固顶 总固顶 解固顶 结帖 解结帖 锁帖 解锁 移帖 删帖
      首页 | 购买指南 | 虚拟主机 | 特色介绍 | 下载中心 | 支付方式
    Copyright 2004-2008 BBSGood.com Powered By: BBSGood.Speed Version 5.0
      咨询电话:0575-85513832、0575-85513825(传真)、7*24小时咨询服务:13606552007 不良信息举报中心 浙ICP备05029817号
      业务QQ:38958768、客服QQ1:415896239、客服QQ2:343896043、MSN:jccsxx@hotmail.com