EntLib(一)如何编写数据访问代码
我们首先编写一个控制台应用程序(Console Application),添加一个app.config文件,内容如下:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="dataConfiguration"
type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings,
Microsoft.Practices.EnterpriseLibrary.Data"/>
</configSections>
<dataConfiguration defaultDatabase="LocalSqlServer"/>
<connectionStrings>
<clear/>
<add name="LocalSqlServer"
connectionString="Persist Security Info=False;
Data Source=172.16.25.98;
Initial Catalog=dhcacc;
Connection TimeOut=100;
User ID=sa;
Password=sa2598;
Packet Size=4096;
Pooling=true;
Max Pool Size=100;
Min Pool Size=1"
providerName="System.Data.SqlClient"/>
</connectionStrings>
</configuration>
上面配置了数据配置节点<dataConfiguration>,其中指定了默认数据库连接“LocalSqlServer”。
然后我们就在程序中进行数据访问:
Imports Microsoft.Practices.EnterpriseLibrary.Data
Imports System.Transactions
Imports System.Data.Common
Module Module1
Sub Main()
Dim db As Database = DatabaseFactory.CreateDatabase()
Using t As New TransactionScope
Dim cmd As DbCommand = db.GetSqlStringCommand("SELECT * FROM SYS_User")
Dim ds As DataSet = db.ExecuteDataSet(cmd)
Console.WriteLine(ds.GetXml())
End Using
Console.ReadLine()
End Sub
End Module
DatabaseFactory.CreateDatabase()方法会根据配置文件中指定的默认数据库连接进行数据库实例的创建。并且我们使用TransactionScope(逻辑事务范围),当第一次进行数据库查询时连接数据库,发生异常则进行回滚,如无异常则在事务生命周期后进行提交。当然EntLib也提供了Database类的数据命令创建(GetSqlStringCommand)和执行方法(ExecuteNonQuery、ExecuteScalar、ExecuteReader以及ExecuteDataSet)。
如果要直接通过指定数据库连接字符串和数据提供者名称进行数据库实例的创建,请参考使用GenericDatabase类。
posted on 2012-02-20 12:17 Richard.Tsui 阅读(292) 评论(0) 编辑 收藏 举报