技术开发 频道

Enterprise Library 2.0 Hands On Lab 翻译(1):数据访问程序块(

【IT168技术文档】

练习一:使用数据访问程序块执行静态SQL语句

 该练习示范了如何使用数据访问程序块进行最基本的数据访问,另外还有如何去配制程序块,提供运行时再选择数据库。

 

 第一步

 打开SimpleData.sln项目,默认的安装路径应该为C:\Program Files\Microsoft Enterprise Library January 2006\labs\cs\Data Access\exercises\ex01\begin,并编译。

第二步 创建QuickStarts数据库

1.用记事本打开DataAccessQuickStarts.sql,默认的安装路径应该为C:\Program Files\Microsoft Enterprise Library January 2006\QuickStarts\Data,选择 文件 | 另存为 菜单,并选择编码格式encodingUnicode,保存并覆盖原来的文件,如何出现只读属性,请在文件属性中去掉只读属性。

2.在同一个目录下,运行SetUpQuickStartsDB.bat批处理文件,注意数据库将被安装在默认的实例(local)\SQLEXPRESS下,如果需要更改,用记事本打开SetUpQuickStartsDB.bat文件进行修改。

第三步 回顾应用程序

Visual Studio 2005解决方案管理器中选择MainForm.cs文件,选择 View | Designer 菜单,应用程序包含一个DataGrid和几个Menu,我们将使用数据访问应用程序块来统计数据库中的Customer的数量,并加载数据到DataGrid中。

第四步 实现Customer菜单项

1.选中CustomerManagment项目,选择 Project | Add Reference … 菜单命令,在打开的对话框中选择Browse,并添加如下两个程序集。


Microsoft.Practices.EnterpriseLibrary.Common.dll Microsoft.Practices.EnterpriseLibrary.Data.dll

默认的位置应该是C:\Program Files\Microsoft Enterprise Library January 2006\bin

2.在解决方案管理器中选中MainForm.cs文件,选择View | Code 菜单命令

3.在文件中添加如下命名空间:

using Microsoft.Practices.EnterpriseLibrary.Data;

4.找到mnuCount_Click方法(窗体中Customer | Count 菜单的单击事件),并添加如下代码。

private void mnuCount_Click(object sender, System.EventArgs e){ // TODO: Count Customers 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); }

在上面的代码中首先声明了一个名为QuickStarts Instance的数据库实例,在配置文件中配置好的,这个时候数据库连接并没有真正的打开。db.ExecuteScalar()方法有很多个重载,选择一个执行静态SQL语句的方法返回的结果类似于SqlCommand .ExecuteScalar()。在该方法中打开并关闭数据库连接。

5.找到mnuLoad_Click方法(窗体中Customer | Load 菜单单击事件),并添加如下代码。

private void mnuLoad_Click(object sender, System.EventArgs e){ // TODO: Load Customers Database db = null; db = DatabaseFactory.CreateDatabase(); DataSet ds = db.ExecuteDataSet( CommandType.Text, "SELECT * From Customers"); dataGrid1.DataSource = ds.Tables[0]; }

db.ExecuteDataSet()方法请求打开并关闭数据库连接,它返回一个用SQL语句查询结果填充的DataSet,它可能会包含多张表。

0
相关文章