基于.NET三层架构多条件查询实现.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于.NET三层架构多条件查询实现

基于.NET三层架构多条件查询实现   摘要:多条件查询在不同的开发平台下,实现方法各异,借助微软企业库在.NET三层架构下实现了多条件查询,并通过一个图书搜索实例说明多条件查询在三层架构中的具体实现。   关键词:多条件查询 三层架构 微软企业库   1 概述   在.NET三层架构程序的开发中,我们经常遇到多条件查询的情况。例如,通过图书名称、作者、定价和购买日期等查找图书信息。当用户实际查询时,则可能希望只输入其中一项或任意多项都能查询出来满足条件的记录,而不是把所有项都输完才能执行查询操作。在这种情况下,编程实现起来就比较麻烦、复杂。本文提供一种实现这种多条件查询的方法,并把它封装成一个多条件查询类,便于在其它项目中使用,提高代码的重用性,减轻编程人员的负担。   2 三层架构的特点   通常意义上的三层架构就是将整个业务应用划分为:表现层、业务逻辑层和数据访问层。使用三层架构一方面可将整个系统分为不同的逻辑块,降低了应用系统开发和维护的成本,另一方面可将数据访问和逻辑操作都集中到组件中,增强了系统的复用性,同时也使系统的扩展性大大增强。   3 多条件查询的解决方法   虽然多条件查询的实现方法很多,但实现起来都是通过针对不同的用户输入生成不同的select语句来实现的。我们的实现思路是借助微软的企业库,用其DatabaseFactory对象创建Database对象,在Database对象上执行ExecuteDataset()方法将数据保存在DataSe对象中,把DataSet对象做为GridView控件的数据源显示查询的结果。在执行ExecuteDataset()方法前,我们先把它的参数DbCommand对象表示成两部分,即select基本语句部分和查询条件部分,查询条件部分因每次查询时用户输入的条件数不一样,我们用泛型Dictionary对象来保存参数和参数值。最后通过Database对象的GetSqlStringCommand方法和AddInParameter方法,我们可以把DbCommand对象的两部分合到一起。这样问题的关键就是怎样来获取DbCommand对象的两部分。   为解决这个问题,我们编写了MultiQuery类。MultiQuery类的构造函数有两个参数,第一个参数为select查询语句的开始部分(不含条件),第二个参数为select语句的结尾部分,一般是order by语句。MultiQuery类的常用方法主要有setParam()方法、getQuerySql()方法和getParams。setParam()方法是向select语句加入查询条件部分,有四个参数,其中,第一个参数是判断是否加入的条件,如果为True,则加入;否则则不加入。第二个参数是查询条件。第三个参数为参数,第四个参数是该参数的值。getQuerySql()方法可以得到合并了查询条件的select语句。getParams()方法获取参数对象的列表。   考虑到MultiQuery类复用性,我们还对setParam()方法进行了重载,满足无参数情况和多个查询条件设置的需要,其原型为:   public void setParam(bool cond, String sql);   public void setParam(bool cond, String sql, Dictionary paramValues);   4 多条件查询在.NET三层架构中的实现   MultiQuery类解决了多条件查询的关键问题,下面我们以一个图书搜索实例介绍一下多条件查询在.NET三层架构中的实现。   4.1 表现层 在表现层,主要是创建图书搜索的界面,界面图如图1所示,对“确定”按钮的单击事件编程,其核心代码如下:   System.Data.DataSet ds = BookService.search.SearchService.search( bookname.Text.Trim(), author.Text.Trim(), price.Text.Trim(), date.Text.Trim());   GridView1.DataSource = ds;   GridView1.DataBind();   在表示层主要是通过调用业务逻辑层的SearchService类的search方法创建DataSet对象,作为GridView对象的数据源。   4.2 业务逻辑层 业务逻辑层是通过编制SearchService类来实现的,该类的search方法负责完成相应的业务逻辑操作。因为要用到企业库,需要在代码中引入命名空间:   using Microsoft.Practices.Enterpr

文档评论(0)

317960162 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档