Enterprise Library – Data Access Application Block - Part 1
Enterprise Library for .Net Framework 3.5 – EntLib v4.1 是patterns & practices 小组为.NET Framework 3.5 开发一套企业库,目前最新版本为v4.1,共包括9个Application Block,包括数据访问(Data Access Application Block)、异常管理(Exception Handling Application Block)、数据验证(Validation Application Block)等等,对企业应用开发非常有帮助,也非常实用。
相关下载信息:
本文根据EntLib v4.1 的学习手册(Hands on Lab),演示数据访问模块的应用:
1. 下载EntLib v4.1 的 Hands on Lab (http://www.codeplex.com/entlib ) ,并进行安装。
打开安装目录下的\Enterprise Library 4.1 HOL\CS\Data Access\exercises\ex01\begin 的SimpleData.sln 项目文件,就可以开始下面的工作了。
在开始之前,还需要创建范例程序中访问的EntLibQuickStarts 数据库。
创建数据库、表、及其存储过程的脚本文件:Enterprise Library 4.1 HOL\CS\Data Access\setup\ DataAccessQuickStarts.sql。在SQL SERVER 2005/2008 中打开,执行一下就可以了。
2. 引用EntLib 中需要的DLL 文件,在安装的目录下 C:\Program Files\Microsoft Enterprise Library 4.1 - October 2008\Bin。这里,引用如下DLL 文件:
Microsoft.Practices.EnterpriseLibrary.Common.dll
Microsoft.Practices.EnterpriseLibrary.Data.dll
打开项目中 MainForm.cs 代码文件,添加应用的namespace的引用:
using Microsoft.Practices.EnterpriseLibrary.Data;
3. 添加代码:
第一段代码是返回有多少条Customers记录。
private void mnuCount_Click(object sender, System.EventArgs e)
{
Database db = null;
db = DatabaseFactory.CreateDatabase("QuickStarts Instance");
int count = (int)db.ExecuteScalar(CommandType.Text, "SELECT Count(*) From Customers");
string message = string.Format("There are {0} customers in the database", count.ToString());
MessageBox.Show(message);
}
第二段代码是返回所有的Customers记录,并显示DataGrid中。
private void mnuLoad_Click(object sender, System.EventArgs e)
{
Database db = null;
db = DatabaseFactory.CreateDatabase();
DataSet ds = db.ExecuteDataSet(CommandType.Text, "SELECT * From Customers");
dataGrid1.DataSource = ds.Tables[0];
}
到目前为止,还不能运行上述的代码,因为app.config 配置文件还没有创建,还不存在数据库连接。
4. 创建app.config 配置文件,通过EntLib 附带的编辑器进行编辑,自动生成相应的配置文件,如下图所示,该编辑器与Visual Studio 2008 进行了集成。
如下图所示,通过编辑器,创建新的Connection String。
并设置Connection String 具体信息。
这里需要注意的几个地方是:
(1)选择Connection String节点,更改Name 属性为 QuickStarts Instance,就是上面代码中创建Database时传入的参数值。
(2)选择Data Access Application Block 节点,设置DefaultDatabase 属性为QuickStarts Instance。在上面的第二段代码中,创建Database对象时没有传入参数,就是这里定义的DefaultDatabase参数。
保存上述配置信息,查看一下自动生成的配置文件:
<?xmlversion="1.0"encoding="utf-8"?>
<configuration>
<configSections>
<sectionname="dataConfiguration"type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</configSections>
<dataConfigurationdefaultDatabase="QuickStarts Instance" />
<connectionStrings>
<addname="QuickStarts Instance"connectionString="Data Source=YOURCOMPUTERNAME;Initial Catalog=EntLibQuickStarts;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
5. 现在就可以运行范例程序了,看看运行情况。