相信很多人使用过Microsoft Data Application Blocks,在以前的版本中(3.0之前),都是通过SqlHelper类来实现,适用SQLServer数据库,如果使用其他数据库,就需要重新写一个,很麻烦,PetShop3.0中就是另外写了一个OraHelper来实现Oracle数据库的操作,在3.1版中这种情况可不再有了。

可以到gotdotnet下载,具体地址不记得了。 
DAAB3.1连NameSpace也改了:GotDotNet.ApplicationBlocks.Data,通过一个通用类AdoHelper实现了SqlServer, Oracle, OleDB, ODBC不同类型的连接,由AdoHelper自动选择合适的数据库连接类来连接,当你在不同数据库间切换时,可以在只修改配置文件不改动代码的情况下实现数据库的转换。 
在配置文件中可以这样配置: 
 <configSections> 
  <section name="daabProviders" type="GotDotNet.ApplicationBlocks.Data.DAABSectionHandler, GotDotNet.ApplicationBlocks.Data"> 
  </section> 
 </configSections>

<daabProviders> 
  <daabProvider alias="misapp" assembly="GotDotNet.ApplicationBlocks.Data" type="GotDotNet.ApplicationBlocks.Data.SqlServer" /> 
 </daabProviders> 
代码中只要使用(vb) 
    Dim adoHelper As AdoHelper = AdoHelper.CreateHelper("misapp") 
即可创建AdoHelper的一个实例,以后如果数据库改为Oracle,只需将配置文件中连接串相应修改,同时将daabProviders一节改为以下内容即可,如果使用的是标准sql语句,代码中不需任何修改。 
 <daabProviders> 
  <daabProvider alias="misapp" assembly="GotDotNet.ApplicationBlocks.Data" type="GotDotNet.ApplicationBlocks.Data.Oracle" /> 
 </daabProviders> 
如果不使用别名,则要在实例化AdoHelper时指定所的数据库类型,如(vb): 
Dim sqlHelper As AdoHelper = AdoHelper.CreateHelper(GetType(SqlServer).Assembly.FullName, GetType(SqlServer).FullName) 
或 
Dim sqlHelper As AdoHelper = AdoHelper.CreateHelper("GotDotNet.ApplicationBlocks.Data, GotDotNet.ApplicationBlocks.Data.SqlServer) 
接下来的使用就很简单了(C#,AspNetPager示例), 
  private void Page_Load(object sender, System.EventArgs e) 
  { 
   AdoHelper helper = AdoHelper.CreateHelper("misapp"); 
    
   string connString = System.Configuration.ConfigurationSettings.AppSettings["connString"]; 
   if(!Page.IsPostBack) 
   { 
    AspNetPager1.RecordCount=(int)helper.ExecuteScalar(connString,System.Data.CommandType.Text,"select count(*) from orders"); 
    BindData(); 
   } 
  }

void BindData() 
  { 
   AdoHelper helper = AdoHelper.CreateHelper("misapp"); 
   string connString = System.Configuration.ConfigurationSettings.AppSettings["connString"]; 
   IDataParameter[] para = new IDataParameter[2]; 
   para = helper.GetSpParameterSet(connString,"mypager"); 
    
//   mypager为获取分页数据的存储过程 
   para[0].Value=AspNetPager1.PageSize; 
   para[1].Value=AspNetPager1.CurrentPageIndex;

DataGrid1.DataSource=helper.ExecuteReader(connString,"mypager",para); 
    
   DataGrid1.DataBind(); 
  } 
  public void AspNetPager1_PageChanged(object src, Wuqi.Webdiyer.PageChangedEventArgs e) 
  { 
   AspNetPager1.CurrentPageIndex=e.NewPageIndex; 
   BindData(); 
  } 
上面这段代码不需任何修改即可改为Oracle上的应用(数据库中的存储过程还是要改的,配置文件要改一下)

Data Access Application Block 3.1 下载地址: 
http://www.gotdotnet.com/workspaces/releases/viewuploads.aspx?id=c20d12b0-af52-402b-9b7c-aaeb21d1f431

daab 3.1使用笔记相关推荐

  1. EntLib 3.1学习笔记(2) : Data Access Application Block

    EntLib 3.1学习笔记(2) : Data Access Application Block 简化实现通用数据访问功能的开发任务.应用程序可以在很多情况下使用应用程序块,例如读取显示数据.获得通 ...

  2. 【读书笔记】知易行难,多实践

    前言: 其实,我不喜欢看书,只是喜欢找答案,想通过专业的解答来解决我生活的困惑.所以,我听了很多书,也看了很多书,但看完书,没有很多的实践,导致我并不很深入在很多时候. 分享读书笔记: <高效1 ...

  3. 【运维学习笔记】生命不息,搞事开始。。。

    001生命不息,搞事不止!!! 这段时间和hexesdesu搞了很多事情! 之前是机械硬盘和固态硬盘的测速,我就在那默默的看着他一个硬盘一个机械测来测去. 坐在他后面,每天都能看到这位萌萌的小男孩,各 ...

  4. SSAN 关系抽取 论文笔记

    20210621 https://zhuanlan.zhihu.com/p/353183322 [KG笔记]八.文档级(Document Level)关系抽取任务 共指id嵌入一样 但是实体嵌入的时候 ...

  5. pandas以前笔记

    # -*- coding: utf-8 -*- """ Created on Sat Jul 21 20:06:20 2018@author: heimi "& ...

  6. PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 call

    您的位置 首页 PyTorch 学习笔记系列 PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 发布: 2017年8月4日 7,195阅读 ...

  7. 容器云原生DevOps学习笔记——第三期:从零搭建CI/CD系统标准化交付流程

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

  8. 容器云原生DevOps学习笔记——第二期:如何快速高质量的应用容器化迁移

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

  9. 王道考研 计算机网络笔记 第六章:应用层

    本文基于2019 王道考研 计算机网络: 2019 王道考研 计算机网络 个人笔记总结 第一章:王道考研 计算机网络笔记 第一章:概述&计算机网络体系结构 第二章:王道考研 计算机网络笔记 第 ...

最新文章

  1. 精通Spring Boot—— 第二十一篇:Spring Social OAuth 登录简介
  2. 201621123085 《Java程序设计》第2周学习总结
  3. LVS负载均衡群集部署之——DR模式的介绍及搭建步骤
  4. UDO report generate DDIC table
  5. django之auth模块
  6. 洛谷 P5708、P5714、P5720、P5725、P5726、P5732、P5738 题解
  7. 随想录(嵌入式应用的三个领域)
  8. org.tigris.subversion.javahl.ClientException: Attempted to lock an already-locked dir异常解决方法...
  9. Global GUI map for automation with VS.NET
  10. SVN刷新不及时,要手动操作
  11. DSP的入门学习(一)
  12. mysql的casewhen 作用_MySQL数据库之Mysql casewhen的三种用法
  13. 拓嘉启远电商:拼多多编写标题怎样才可以避开违规
  14. linux 开启 键盘的背光灯
  15. 攻防世界 —— Crypto新手练习区7题(不仅仅是Morse)题解
  16. 计算机英语论文题目,英语专业毕业论文题目集锦
  17. 前端学习-HTML5
  18. HR SaaS or社群电商,谁才是打开HR市场的真正钥匙?
  19. 如果恢复计算机系统时间吗,经常重置、恢复系统对电脑的影响大不大?
  20. Java 登录安全漏洞防护

热门文章

  1. 全新视角洞察租车行业发展趋势
  2. 一文说透产品信息结构图的本质
  3. c++ 实现录音并且指定到文件_搜狗发布四款AI录音笔,4大核心功能开启AI录音新时代...
  4. 分析方法的基础 — 1. 拆分能力,分析师的第一技能
  5. 面向非易失内存的MPI-IO接口优化
  6. 大规模异构数据并行处理系统的设计、实现与实践
  7. “农业大数据”专题征文通知
  8. 作者:李友元(1986-),男,西南财经大学金融创新期刊编辑部助理编辑
  9. 【操作系统】高速缓存和缓冲区
  10. 软件能力成熟度CMMI3管理过程域