初级使用企业库

来源:互联网 发布:党委和政府的关系知乎 编辑:程序博客网 时间:2024/06/06 18:13
 

使用企业库进行数据操作

一、企业库-数据处理模块简介

微软企业库的数据处理应用模块(The Data Access Application Block,以下简称DAAB)通过提供合理的逻辑模块来帮助.net开发人员从繁重的数据访问、处理工作中解脱出来。开发人员仅需做如下的工作:

1、创建数据库(连接)对象

2、通过命令行(command)提供数据访问及处理所需的各种参数

3、调用DAAB提供的相应处理方法获得已封装好的DataSet等对象。

DAAB支持SQLServerSQLServer CE以及Oracle等数据库。DAAB将常见的数据处理操作进行适当分类并针对这些分类向开发者们提供相应的解决方案(包括可调用的方法等)。这些解决方案(操作)包括:

1、通过使用一个DataReader对象来获得多条数据

2、通过使用一个DataSet对象来获得、封装多条数据

3、执行一条sql命令并获得返回值

4、执行一条sql命令并返回一个单值对象

5、通过一个事务执行多项数据库操作

6、从SQLServer获得XML格式的数据

7、根据封装在一个DataSet中的数据更新数据库

二、配置DAAB应用模块

当我们安装了企业库后,在VS2008的解决方案资源管理器中右键点击应用的配置文件,在弹出的菜单中将会出现一个新的选项 Edit Enterprise Library Configuration,点击它将打开The Enterprise Library configuration tools提供的编辑界面(通过该工具我们可以对一个应用中使用到的所有企业库的模块进行配置),如图所示:

打开App.config,添加了DAAB模块节点“Data Access Application Block”,然后再添加DataBase Instance,设置DataBase InstanceNameDatabase Provider的值,设置Database SettingsDefault Database值。

编辑Database Instance Connection String的值。

三、在应用程序中加入相关代码

1. 加入相关企业库DLL文件的引用

(1) 加入Microsoft.Practices.EnterpriseLibrary.Data.dll库的引用,它的一般位置是:“<安装盘>:/Program Files/Microsoft Enterprise Library 5.0/Bin/”

(2) 加入Microsoft.Practices.EnterpriseLibrary.Common.dll库的引用,它的一般位置是:“<安装盘>:/Program Files/Microsoft Enterprise Library 5.0/Bin/”

2加入DAAB命名空间、必要的DATA命名空间的引用

using Microsoft.Practices.EnterpriseLibrary.Data;  using System.Data;  using System.Data.Common;

3 创建数据库对象

DAAB模块提供一个DatabaseFactory类来创建所需的Database对象,创建后的db对象实例封装了常用的针对一个数据库的操作。我们可以通过调用不带参数的DatabaseFactory.createDatabase()方法来生成一个默认的数据库对象,该对象包含的数据库连接信息就是刚才我们在配置文件中设置的“DefaultDatabase”属性的信息。当然,我们还可以用带参数的重载createDatabase()方法,即给createDatabase()加入string类型的参数,以便Factory生成指定的Database对象。

创建一个数据库对象的代码如下:

Database db = DatabaseFactory.CreateDatabase();

  Database db = DatabaseFactory.CreateDatabase(“SQLCon”);

这里需要提到一点,Database实际上是一个虚类,当我们调用CreateDatabase()时候返回的是一个Database的派生类,具体类型由配置文件中数据库连接字符串对象的ProviderName属性决定。如果按以上代码,实际返回的是一个SqlDatabase类的实例。

4使用Database实例提供的各种方法进行操作

ExecuteReader:返回结果仅仅显示,不做更新、添加、删除操作;

ExecuteDataSet  需要返回单表或多表数据;

    如果你需要逐一访问数据库的每一条记录,这个时候如果使用DataReader的话,则会使与数据库的连接一直处于打开的状态,长此以往,就会使应用程序的性能和可伸缩性大大降低。需要和其他的应用程序交换数据。

ExecuteNonQuery:主要执行insert update delete操作;SQL语句执行影响的行数

ExecuteScalar:执行ExecuteScalar返回单值

LoadData:加载数据到一个已经存在的数据集

UpdateDataSet:使用已经存在的数据集更新数据库内容

GetStoredProcCommand:返回一个存储过程的数据库command对象

GetSqlStringCommand:返回一个SQL语句的数据库command对象

ExecuteXmlReader:返回xml格式的数据,xmlReader类型,这个只能用在SQL Server数据库,通过SqlDatabase类调用,Database类中没有这个方法。

ExecuteSproAccessor:使用存储过程返回一个客户端可以查询的序列对象

ExecuteSqlStringAccessor:使用SQL语句返回一个客户端可以查询的序列对象

TransactionScope:支多项事务同时执行,一旦发生异常则会回滚所有操作

还有其他的,不在一一列举…….

部分操作应用实例:

原创粉丝点击