Rickie is back .... 人生·工作的结果=思维方式×热情×能力

今天比昨天更好,明天比今天更好,为此,不屈不挠地工作、勤勤恳恳地经营、孜孜不倦地修炼,我们人生的目的和价值就是这样确确实实地存在着。

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  397 随笔 :: 3 文章 :: 1310 评论 :: 129 引用

Enterprise Library: Data Access Application Block使用向导
 Part 1

Written by: Rickie Lee (rickieleemail#yahoo.com)

My blog:http://www.cnblogs.com/rickie

Data Access Application Block有如下好处:

l         减少编写重复累赘代码去执行标准的任务。

l         帮助在应用程序内部和跨企业应用维护一致的数据访问实践。

l         降低改变物理数据目标的难度。

l         减轻开发人员学习不同数据库类型的不同编程模型。

l         当移植应用程序到不同数据库类型时,减少重写代码的数量。

 

Data Access Application Block依赖项:

l         Data Access Application Block依赖其他的application blocksEnterprise Library中的代码。

l         Configuration Application Block – Data Access Application Block使用该Configuration Application Block读取配置信息。

l         Common类库功能,如instrumentation – 提供不同功能用来显示事件和系统管理的数据。

l         此外,application block使用XML文件存放配置信息,推荐采用Enteprise Library配置工具来修改这些配置信息。

 

使用Enteprise Library配置工具创建配置文件:

创建DemoDAAP应用程序,使用Configuration Console配置app.config文件。应注意Connection String的设置,在本示例中,设置Integrated SecurityFalse,并添加User IDPassword参数及其参数值,Database属性值为Northwind
Enterprise_ConfigurationConsole.jpg

选择合适的重载方法

每一个数据访问方法均有许多重载,如下的描述和指导帮助你选择合适的重载:

l         一些重载方法接受DBCommandWrapper对象,DBCommandWrapper在一个对象内同时封装了command和参数。允许你同时增加输入/输出参数和设置这些参数的类型。这些重载提供了很好的灵活性和对每一个方法的控制。

l         一些重载方法接受存储过程和存储过程参数集合,当调用仅有输入参数的存储过程时,调用这些重载比较方便。

l         一些重载方法接受System.Data.CommandType和字符串命令,当执行在线的SQL语句或没有参数的存储过程时,调用这些重载比较方便。

l         最后,上述的每一个重载都包含一个接受事务的重载方法,当在现有事务内执行方法时,允许你使用合适的重载类型。

 

未完,Part 2待续。
*** Updated ***
Enterprise Library: Data Access Application Block使用向导,Part 2

**

作者:Rickie Lee (rickieleemail#yahoo.com)

本文参考Enterprise Library: Data Access Application Block Quick Start范例,简单编写一个DEMO

 

posted on 2005-02-05 02:08 Rickie 阅读(12302) 评论(13) 编辑 收藏

评论

嗯嗯,我就是不能让DAAB部分正常运行,好贴!
 回复 引用 查看   

#2楼 2005-02-05 09:16 KingofSC
说得daab是不是带源代码哪个?
那个好像没有配置文件的说
 回复 引用   

#3楼 2005-02-10 23:37 jlzhou
感谢Rickie Lee!

非常感谢,非常有帮助!
 回复 引用   

#4楼[楼主] 2005-02-12 14:29 Rickie      
jlzhou, thanks for your honorable comments.
 回复 引用 查看   

#5楼 2005-02-17 13:29 冰火      
谢谢 Rickie,学习中!
 回复 引用 查看   

#6楼 2005-04-12 17:11 Jarod
string sqlCommand = "SELECT * FROM Employees WHERE EmployeeId = @EmployeeId";

Database db = DatabaseFactory.CreateDatabase();
DBCommandWrapper dbCommandWrapper = db.GetSqlStringCommandWrapper(sqlCommand);
dbCommandWrapper.AddInParameter("@EmployeeId", DbType.Int32, employeeId);

return db.ExecuteDataSet(CommandType.Text, sqlCommand);

但出现错误:
必须声明变量 '@EmployeeId'。
以前用ADDB2.0,现在改成这样就抱错,请问怎么解决?谢谢!
 回复 引用   

#7楼 2005-05-24 00:11 Jackie[未注册用户]
请问如何用MEL里面的String Resources (.SR) 来做国际化版本。
 回复 引用   

#8楼 2005-09-24 15:35 gjh[未注册用户]
 回复 引用   

#9楼 2006-04-05 11:00 jedliu[未注册用户]
ConnectionStringNoCredentials
在调用DoLoadDataSet函数时,当填充dataset时,出现这个异常。
当前用户是administrator,有足够权限。数据库用的是local。
 回复 引用   

#10楼 2006-04-05 11:20 jedliu[未注册用户]
sorry,没写完。是
this.instrumentation.CommandFailed("DbDataAdapter.Fill()", ConnectionStringNoCredentials);
 回复 引用   

#11楼 2006-04-17 14:42 梁广永      
学习,
 回复 引用 查看   

#12楼 2007-01-17 13:50 amoshuo[未注册用户]
谢谢 Rickie,学习中!
 回复 引用