Data Access Application Block(Enterprise Library 3.1)的下载以及使用方法介绍
Enterprise Library 3.1 中的Data Access Application Block已经支持OleDb,这意味着支持Data Access Application Block可以访问ACCESS、Oracle等数据库了。
这篇文章我以ACCESS数据库为例,简单介绍下Data Access Application Block的使用方法。
Enterprise Library 3.1的下载地址为:
http://www.microsoft.com/downloads/details.aspx?FamilyID=4c557c63-708f-4280-8f0c-637481c31718&DisplayLang=en
下载后安装在C盘,会创建目录C:/Program Files/Microsoft Enterprise Library 3.1 - May 2007,里面有四个子目录:
Bin-生成的程序集,也是我们的应用程序需要引用的
Docs-文档
src-源代码,里面还有使用示例
Visual Studio Integration-里面有两个程序集,暂时用不到
使用方法:
1.准备工作:建立一个ACCESS数据库,创建表“用户信息表”,其中两个字段:用户名、密码,均为文本类型
2.建立一个VB.NET的Windows应用程序
3.添加应用程序配置文件app.config,将如下内容拷贝至该文件:
<configuration>
<configSections>
<section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data" />
</configSections>
<connectionStrings>
<add name="DataAccessQuickStart" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=ACCESS数据库的路径"
providerName="System.Data.OleDb" />
</connectionStrings>
<dataConfiguration defaultDatabase="DataAccessQuickStart"/>
</configuration>
注意add元素的connectionString属性,是我们熟悉的ACCESS数据库连接字符串,其他数据库写法当然不一样,我这里就不例举了。
4.添加对Microsoft.Practices.EnterpriseLibrary.Common.dll和Microsoft.Practices.EnterpriseLibrary.Data.dll引用
5.添加新类EnterpriseLibraryTest,将如下代码拷贝至新类文件EnterpriseLibraryTest.vb
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Imports System.Data.Common
Imports Microsoft.Practices.EnterpriseLibrary.Data
Public Class EnterpriseLibraryTest
'从用户表中删除指定用户名的用户记录
Public Shared Sub DeleteUser(ByVal uname As String)
Dim db As Database = DatabaseFactory.CreateDatabase()
Dim sqlCommand As String = String.Format("Delete From 用户信息表 Where 用户名='{0}'", uname)
Dim dbCommand As DbCommand = db.GetSqlStringCommand(sqlCommand)
db.ExecuteNonQuery(dbCommand)
End Sub
'添加用户tom,密码为123
Public Shared Sub AddUser(ByVal uname As String, ByVal upwd As String)
Dim db As Database = DatabaseFactory.CreateDatabase()
Dim sqlCommand As String = "Insert Into 用户信息表(用户名,密码) Values(?,?)"
Dim dbCommand As DbCommand = db.GetSqlStringCommand(sqlCommand)
'添加参数
db.AddInParameter(dbCommand, "用户名", DbType.String, 50)
db.AddInParameter(dbCommand, "密码", DbType.String, 50)
'参数赋值
db.SetParameterValue(dbCommand, "用户名", uname)
db.SetParameterValue(dbCommand, "密码", upwd)
db.ExecuteNonQuery(dbCommand)
End Sub
'返回所有用户信息
Public Shared Function GetUsers() As IDataReader
Dim sql As String = "Select * From 用户信息表"
Dim db As Database = DatabaseFactory.CreateDatabase()
Dim dbCommand As DbCommand = db.GetSqlStringCommand(sql)
Dim dr As IDataReader
dr = db.ExecuteReader(dbCommand)
Return dr
End Function
End Class
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
6.调用方法
因为都是共享方法,调用简单,如下就行
'删除用户名为Tom的记录
EnterpriseLibraryTest.DeleteUser("Tom")