微软企业库5.0学习笔记(二)
2010-05-27 23:24
260 查看
数据库访问模块都能实现哪些功能呢?数据库访问模块抽象类你正在使用的数据库,提供了一些列接口,使得你可以更容易的实现常用的数据库访问功能。例如:使用Database类填充DataSet数据集,用database类获取一个适当的Command实例,然后调用database的ExecuteDataSet方法,就可以填充数据集。不需要你调用DataAdapter的Fill方法。ExecuteDataSet方法管理数据库连接,实现了填充数据集所需要的所有工作。使用类似的方法,通过database类可以直接执行command,可以获取一个DataReader实例,可以用dataset中的数据更新数据库。模块也支持多个操作的事务,如果失败的话,可以回滚。
除了使用ADO.NET也能完成的常用功能以外,模块还支持异步访问数据库(只要数据支持)。还可以返回客户端可以用LINQ查询的数据的序列对象形式。
使用数据访问模块的主要优点,除了简化开发以外,它使得你可以创建一种provider独立的应用,可以很容易的更换不同的数据提供源。在大多数情况下,除非你在代码中指定了数据库类型,剩下的就是更改配置文件中的连接字符串配置节就可以了。不需要你修改代码中的sql查询和存储过程及其参数。
数据访问模块提供的常用方法
下面列出一些模块常用的获取数据、更新数据方法,其中有一些和直接使用ADO.NET中的方法很相似。
如果你使用SqlDatabase类的话,可以使用Begin和End类型的方法实现数据库异步操作。
如何使用数据库访问模块
1首先通过企业库的配置工具添加模块配置
2在代码中添加如下代码
代码
// Create a suitable command type and add the required parameter.
using (DbCommand sprocCmd = defaultDB.GetStoredProcCommand(storedProcName))
{
defaultDB.AddInParameter(sprocCmd, "state", DbType.String, "New York");
// Call the ExecuteReader method with the command.
using (IDataReader sprocReader = namedDB.ExecuteReader(sprocCmd))
{
Console.WriteLine("Results from executing stored procedure:");
DisplayRowValues(sprocReader);
}
}
以对象形式返回数据
![](http://images.cnblogs.com/cnblogs_com/virusswb/entlib72.JPG)
上图是一个使用Accessor访问数据库,返回对象形式的数据的过程。
除了使用ADO.NET也能完成的常用功能以外,模块还支持异步访问数据库(只要数据支持)。还可以返回客户端可以用LINQ查询的数据的序列对象形式。
使用数据访问模块的主要优点,除了简化开发以外,它使得你可以创建一种provider独立的应用,可以很容易的更换不同的数据提供源。在大多数情况下,除非你在代码中指定了数据库类型,剩下的就是更改配置文件中的连接字符串配置节就可以了。不需要你修改代码中的sql查询和存储过程及其参数。
数据访问模块提供的常用方法
下面列出一些模块常用的获取数据、更新数据方法,其中有一些和直接使用ADO.NET中的方法很相似。
方法 | 功能 |
ExecuteDataset,创建,加载,返回数据集 LoadData,加载数据到一个已经存在的数据集 UpdateDataSet,使用已经存在的数据集更新数据库内容 | 填充一个数据集,使用数据集更新数据库 |
ExecuteReader,创建,返回一个provider独立的DbDataReader实例 | 从数据库读取多行数据 |
ExecuteNonQuery,执行command,返回数据库受影响的行数,可以通过output返回多个值 ExecuteScalar,执行command,返回单个值 | 执行command数据库命令对象 |
ExecuteSproAccessor,使用存储过程返回一个客户端可以查询的序列对象 ExecuteSqlStringAccessor,使用SQL语句返回一个客户端可以查询的序列对象 | 以序列对象的形式返回数据 |
ExecuteXmlReader,返回xml格式的数据,xmlReader类型,这个只能用在SQL Server数据库,通过SqlDatabase类调用,Database类中没有这个方法。 | 获取xml格式数据(只能用在SQL Server数据库) |
GetStoredProcCommand,返回一个存储过程的数据库command对象 GetSqlStringCommand,返回一个SQL语句的数据库command对象 | 创建一个Command对象 |
AddInParameter,创建一个新的input参数,并且加入command的参数集合 AddOutParameter,创建一个新的output参数,并且加入command的参数集合 AddParameter,创建一个指定类型的参数,并且加入command的参数集合 GetParameterValue,以Object类型返回指定参数的值 SetParameterValue,给指定参数赋值 | 处理command的参数 |
CreateConnection,创建,返回当前数据库的连接,允许你通过这个链接初始化和管理数据库事务 | 处理数据库事务 |
如何使用数据库访问模块
1首先通过企业库的配置工具添加模块配置
2在代码中添加如下代码
代码
// Create a suitable command type and add the required parameter.
using (DbCommand sprocCmd = defaultDB.GetStoredProcCommand(storedProcName))
{
defaultDB.AddInParameter(sprocCmd, "state", DbType.String, "New York");
// Call the ExecuteReader method with the command.
using (IDataReader sprocReader = namedDB.ExecuteReader(sprocCmd))
{
Console.WriteLine("Results from executing stored procedure:");
DisplayRowValues(sprocReader);
}
}
以对象形式返回数据
上图是一个使用Accessor访问数据库,返回对象形式的数据的过程。
相关文章推荐
- 微软企业库5.0学习笔记(三十三)数据访问模块
- 微软企业库5.0学习笔记数据验证模块
- 微软企业库5.0学习笔记(六)创建并引用企业库对象
- 微软企业库5.0学习笔记(十六)
- 微软企业库5.0学习笔记(00)企业库主要内容
- 微软企业库5.0学习笔记(三十五)数据访问模块 DataSet以及数据库事务
- 微软企业库5.0学习笔记(四)配置企业库
- 微软企业库5.0学习笔记(五)引用企业库程序集及企业库的依赖
- 微软企业库5.0学习笔记(七)
- 微软企业库5.0学习笔记(三十四)数据访问模块 各种获取数据的方式
- 微软企业库5.0学习笔记(四十五)实战数据验证模块----高级篇
- 微软企业库5.0学习笔记(二)关于5.0版本
- 微软企业库5.0学习笔记(七)存储容器的引用
- 微软企业库5.0学习笔记(十五)
- 微软企业库5.0学习笔记(三十四)数据访问模块 各种获取数据的方式
- 微软企业库5.0学习笔记(六)创建并引用企业库对象
- 微软企业库5.0学习笔记(八)
- 微软企业库5.0学习笔记(三十三)数据访问模块
- 微软企业库5.0学习笔记(四十二)异常处理模块
- 微软企业库5.0学习笔记(三十五)数据访问模块 DataSet以及数据库事务