首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室Dotnet频道
中国IT教育
Google
首页 ASP.NET  C#  XML/WebService ADO.NET VC.NET VB.NET .NET 资讯动态 专题 RSS订阅 讨论 下载
您现在的位置: 中国IT实验室 >> Dotnet >> ASP.NET >> 正文

LINQ下使用三层架构的数据统计以及一个主从报表

    以前,我们要在某个报表中显示统计信息一般有两种方法: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

[1] [2] [3] [4] 下一页

【责编:Ken】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 专题推荐

 ·WEB程序开发--ASP.NET和PHP、JSP究竟学哪个?
 ·五步带你入门XML
 ·关于Java框架技术专题
 ·XML全攻略技术专题
 ·JAVA开源技术介绍专题
 ·Java嵌入式开发之J2ME技术专题
 ·超前体验 Oracle 11g的5个新特性…
 ·揭密使用VB.NET的五个实用技巧
 ·Oracle和SQL Server常用函数对比专题…
 ·展现C#世界 C#程序设计专题…
 今日更新
 社区讨论
 博客论点
 频道精选
 Dotnet频道相关导航