日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Enterprise Library1.0 -- DataAccess Application Block

發布時間:2025/5/22 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Enterprise Library1.0 -- DataAccess Application Block 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

??? Enterprise Library 對大家來說應該不陌生,很早我就聽說了這個東西,但一直沒有時間來學習,最近終于抽出時間來學習Enterprise Library,現在就把我學習過程中的一些實例發上來,供大家參考.Enterprise Library現在已經有2.0版本了,但我也是后來才看到的,其他的就不多說了,先說1.0里面的Data Access Application Block,以后有時間在研究2.0.
??? 本來先看的是其中的Configuration Application Block,但我在Web項目中調試寫入XML時總是不能成功,后來查資料得知Web項目中的config文件不能通過程序來修改或創建,不知道是否確有此事,還望高手指點,另外還不明白的是 Configuration Application Block在我們實際項目的開發中能起到什么樣的作用,昨天也沒想通.
??? 好了,我們來看看Data Access Application Block 吧,首先我們看一下如何用Enterprise Library 提供的配置工具來創建一個數據庫實例.首先我們應該新建我們所需項目,然后在Enterprise Library的安裝目錄的Bin目錄中找到EntLibConfig.exe文件,雙擊打開,并選擇File-->Open Application,打開剛剛新建項目的Web.Config文件,如下:

然后,右鍵單擊Application,選擇New--> DataAccess Application Block,如下圖:


?????? 然后會自動在Data Access Block 節點下生成三個Connection String(保存新建的數據庫實例的連接字符串信息),DataBaseInstance(此節點存放數據庫實例名以及其他相關信息),DataBase Types(節點存放數據庫類型,如Sql Server?或 Oracle等).接著我們在?Connection String ?下的 Sql Connection String 下配置好我們的數據庫連接信息(包括Server,Database,uid,pwd等).
????? 上面所說的都配置好了以后,我們就可以點擊 File-->Save All或Ctrl + Shift + S,如果配置沒有錯誤的話,就會在你的項目中生成一個dataConfiguration.config文件,內容如下:

<?xml?version="1.0"?encoding="utf-8"?>
<dataConfiguration>
??
<xmlSerializerSection?type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings,?Microsoft.Practices.EnterpriseLibrary.Data,?Version=1.1.0.0,?Culture=neutral,?PublicKeyToken=null">
????
<enterpriseLibrary.databaseSettings?xmlns:xsd="http://www.w3.org/2001/XMLSchema"?xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"?defaultInstance="EnterpriseLibrary"?xmlns="http://www.microsoft.com/practices/enterpriselibrary/08-31-2004/data">
??????
<databaseTypes>
????????
<databaseType?name="Sqlserver"?type="Microsoft.Practices.EnterpriseLibrary.Data.Sql.SqlDatabase,?Microsoft.Practices.EnterpriseLibrary.Data,?Version=1.1.0.0,?Culture=neutral,?PublicKeyToken=null"?/>
??????
</databaseTypes>
??????
<instances>
????????
<instance?name="EnterpriseLibrary"?type="Sqlserver"?connectionString="Sql?Connection?String"?/>
??????
</instances>
??????
<connectionStrings>
????????
<connectionString?name="Sql?Connection?String">
??????????
<parameters>
????????????
<parameter?name="database"?value="EnterpriseLibrary"?isSensitive="false"?/>
????????????
<parameter?name="Integrated?Security"?value="True"?isSensitive="false"?/>
????????????
<parameter?name="pwd"?value=""?isSensitive="true"?/>
????????????
<parameter?name="server"?value="shy"?isSensitive="false"?/>
????????????
<parameter?name="uid"?value="sa"?isSensitive="false"?/>
??????????
</parameters>
????????
</connectionString>
??????
</connectionStrings>
????
</enterpriseLibrary.databaseSettings>
??
</xmlSerializerSection>
</dataConfiguration>

在Web.config文件中加入了下面內容:

??<configSections>
????
<section?name="enterpriselibrary.configurationSettings"?type="System.Configuration.IgnoreSectionHandler,?System,?Version=1.0.5000.0,?Culture=neutral,?PublicKeyToken=b77a5c561934e089"?/>
??
</configSections>
??
<enterpriselibrary.configurationSettings?xmlns:xsd="http://www.w3.org/2001/XMLSchema"?xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"?applicationName="Application"?xmlns="http://www.microsoft.com/practices/enterpriselibrary/08-31-2004/configuration">
??
<configurationSections>
????
<configurationSection?xsi:type="ReadOnlyConfigurationSectionData"?name="dataConfiguration"?encrypt="false">
??????
<storageProvider?xsi:type="XmlFileStorageProviderData"?name="XML?File?Storage?Provider"?path="dataConfiguration.config"?/>
??????
<dataTransformer?xsi:type="XmlSerializerTransformerData"?name="Xml?Serializer?Transformer">
????????
<includeTypes?/>
??????
</dataTransformer>
????
</configurationSection>
??
</configurationSections>
??
<keyAlgorithmStorageProvider?xsi:nil="true"?/>
??
<includeTypes?/>
</enterpriselibrary.configurationSettings>

到此為止,我們使用Data Access Application?Block 的配置文件就基本上配置好了,下面我們來看看DataAccess Application Block 的幾種基本操作:
首先我們建立名為EnterpriseLibrary的數據庫(這個應該在配置之前先建好的),在此數據庫中建一張表,名為 Person .

需要引用的程序集如下:
Microsoft.Practices.EnterpriseLibrary.Data
Microsoft.Practices.EnterpriseLibrary.Configuration

1.ExecuteNonQuery

/**////?<summary>
????????
///?執行ExecuteNonQuery
????????
///?</summary>

????????public?void?AddPerson()
????????
{
????????????Database?db?
=?DatabaseFactory.CreateDatabase("EnterpriseLibrary");
????????????db.ExecuteNonQuery(CommandType.Text,
"insert?into?person?values(1,'pw',23,'男','3304122')");
????????}

2.ExecuteReader

/**////?<summary>
????????
///?執行ExecuteReader,返回Person列表
????????
///?</summary>
????????
///?<returns></returns>

????????public?IDataReader?GetPersonList()
????????
{
????????????Database?db?
=?DatabaseFactory.CreateDatabase("EnterpriseLibrary");
????????????
????????????
string?sql?=?"select?*?from?person";
????????????DBCommandWrapper?dw?
=?db.GetSqlStringCommandWrapper(sql);

????????????
return?db.ExecuteReader(dw);
????????}

3.ExecuteDataSet

/**////?<summary>
????????
///?執行ExecuteDataSet,返回Person列表
????????
///?</summary>
????????
///?<returns></returns>

????????public?DataSet?GetPersonList()
????????
{
????????????Database?db?
=?DatabaseFactory.CreateDatabase("EnterpriseLibrary");
????????????
????????????
string?sql?=?"select?*?from?person";
????????????DBCommandWrapper?dw?
=?db.GetSqlStringCommandWrapper(sql);

????????????
return?db.ExecuteDataSet(dw);
????????}


4.ExecuteScalar

/**////?<summary>
????????
///?執行ExecuteScalar,返回單一的值
????????
///?</summary>
????????
///?<returns></returns>

????????public?int?GetPersonNum()
????????
{
????????????Database?db?
=?DatabaseFactory.CreateDatabase("EnterpriseLibrary");

????????????
string?sql?=?"select?count(*)?from?person";
????????????DBCommandWrapper?dw?
=?db.GetSqlStringCommandWrapper(sql);

????????????
return?(int)db.ExecuteScalar(dw);
????????}

?

5.執行存儲過程

//執行存儲過程
????????
//首先我們在數據庫中建一個名為"SelectPersonBySex"的存儲過程
????????
//如果有輸入參數可以這樣寫:dw.AddOutParameter("@sex",System.Data.DbType.String,'男');
????????
//執行完存儲過程后取輸出參數的值的方法是:dw.GetParameterValue("@sex");
????????public?DataSet?GetPersonListBySex(string?sex)
????????
{
????????????Database?db?
=?DatabaseFactory.CreateDatabase("EnterpriseLibrary");

????????????DBCommandWrapper?dw?
=?db.GetStoredProcCommandWrapper("SelectPersonBySex");

????????????dw.AddInParameter(
"@sex",System.Data.DbType.String,sex);

????????????
return?db.ExecuteDataSet(dw);

????????}

6.在程序中加入事務

public?void?InsertPerson()
????????
{
????????????
//創建數據庫實例
????????????Database?db?=?DatabaseFactory.CreateDatabase("EnterpriseLibrary");

????????????
//在程序中加入事務
????????????using?(IDbConnection?conn?=?db.GetConnection())
????????????
{
????????????????
//打開連接
????????????????conn.Open();
????????????????
//建立一個事務
????????????????System.Data.IDbTransaction?trans?=?conn.BeginTransaction();
????????????????
????????????????
try
????????????????
{
????????????????????
//循環向person表插入記錄
????????????????????for(int?i=2;i<10;i++)
????????????????????
{
????????????????????????db.ExecuteNonQuery(CommandType.Text,
@"insert?into?person?values("?+?i?+?",'pw1',23,'男','3304122')");
????????????????????}

????????????????????
//提交事務
????????????????????trans.Commit();
????????????????}

????????????????
catch(Exception)
????????????????
{
????????????????????
//回滾事務
????????????????????trans.Rollback();
????????????????}

????????????????
finally
????????????????
{
????????????????????
//關閉連接
????????????????????conn.Close();
????????????????}

????????????}

????????}

關于DataAccess Application Block 的基本操作就說到這,以后再有更深的研究我繼續往上發,還有想了解一下,學過Enterprise Library的朋友們對它的看法,歡迎在此發表你的個人意見.

Email:pwei013@163.com

轉載于:https://www.cnblogs.com/pw/archive/2006/05/30/412599.html

總結

以上是生活随笔為你收集整理的Enterprise Library1.0 -- DataAccess Application Block的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。