Enterprise Library 2.0 Hands On Lab 翻譯(1):數(shù)據(jù)訪問(wèn)程序塊(一)
練習(xí)一:使用數(shù)據(jù)訪問(wèn)程序塊執(zhí)行靜態(tài)SQL語(yǔ)句
該練習(xí)示范了如何使用數(shù)據(jù)訪問(wèn)程序塊進(jìn)行最基本的數(shù)據(jù)訪問(wèn),另外還有如何去配制程序塊,提供運(yùn)行時(shí)再選擇數(shù)據(jù)庫(kù)。
第一步
打開SimpleData.sln項(xiàng)目,默認(rèn)的安裝路徑應(yīng)該為C:\Program Files\Microsoft Enterprise Library January 2006\labs\cs\Data Access\exercises\ex01\begin,并編譯。

第二步 創(chuàng)建QuickStarts數(shù)據(jù)庫(kù)
1.用記事本打開DataAccessQuickStarts.sql,默認(rèn)的安裝路徑應(yīng)該為C:\Program Files\Microsoft Enterprise Library January 2006\QuickStarts\Data,選擇 文件 | 另存為 菜單,并選擇編碼格式encoding為Unicode,保存并覆蓋原來(lái)的文件,如何出現(xiàn)只讀屬性,請(qǐng)?jiān)谖募傩灾腥サ糁蛔x屬性。
2.在同一個(gè)目錄下,運(yùn)行SetUpQuickStartsDB.bat批處理文件,注意數(shù)據(jù)庫(kù)將被安裝在默認(rèn)的實(shí)例(local)\SQLEXPRESS下,如果需要更改,用記事本打開SetUpQuickStartsDB.bat文件進(jìn)行修改。
第三步 回顧應(yīng)用程序
在Visual Studio 2005解決方案管理器中選擇MainForm.cs文件,選擇 View | Designer 菜單,應(yīng)用程序包含一個(gè)DataGrid和幾個(gè)Menu,我們將使用數(shù)據(jù)訪問(wèn)應(yīng)用程序塊來(lái)統(tǒng)計(jì)數(shù)據(jù)庫(kù)中的Customer的數(shù)量,并加載數(shù)據(jù)到DataGrid中。
第四步 實(shí)現(xiàn)Customer菜單項(xiàng)
1.選中CustomerManagment項(xiàng)目,選擇 Project | Add Reference … 菜單命令,在打開的對(duì)話框中選擇Browse,并添加如下兩個(gè)程序集。

Microsoft.Practices.EnterpriseLibrary.Common.dll
Microsoft.Practices.EnterpriseLibrary.Data.dll
默認(rèn)的位置應(yīng)該是C:\Program Files\Microsoft Enterprise Library January 2006\bin。
2.在解決方案管理器中選中MainForm.cs文件,選擇View | Code 菜單命令
3.在文件中添加如下命名空間:
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);
}在上面的代碼中首先聲明了一個(gè)名為QuickStarts Instance的數(shù)據(jù)庫(kù)實(shí)例,在配置文件中配置好的,這個(gè)時(shí)候數(shù)據(jù)庫(kù)連接并沒有真正的打開。db.ExecuteScalar()方法有很多個(gè)重載,選擇一個(gè)執(zhí)行靜態(tài)SQL語(yǔ)句的方法返回的結(jié)果類似于SqlCommand .ExecuteScalar()。在該方法中打開并關(guān)閉數(shù)據(jù)庫(kù)連接。
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()方法請(qǐng)求打開并關(guān)閉數(shù)據(jù)庫(kù)連接,它返回一個(gè)用SQL語(yǔ)句查詢結(jié)果填充的DataSet,它可能會(huì)包含多張表。
第五步 配置應(yīng)用程序
1.在項(xiàng)目CustomerManagement中添加一個(gè)應(yīng)用程序配置文件(App.config),單擊CustomerManagement項(xiàng)目,選擇Project| Add New Item…菜單命令,在彈出的對(duì)話框中選擇Application configuration file,保留名稱為App.config。

2.使用Enterprise Library配置工具配置應(yīng)用程序,可以通過(guò)開始菜單打開該配置工具,選擇所有程序| Microsoft patterns and practices | Enterprise Library | Enterprise Library Configuration,并打開App.config文件。或者直接在Visual Studio中使用該工具打開配置文件。
3.在解決方案管理器中選中App.config文件,在View菜單或者在右鍵菜單中選擇Open With…,將打開OpenWith對(duì)話框,單擊Add按鈕。

4.在Add Program對(duì)話框中,設(shè)置Program name指向EntLibConfig.exe文件,默認(rèn)的路徑為C:\Program Files\Microsoft Enterprise Library January 2006\bin,設(shè)置Friendly name為Enterprise Library Configuration,單擊OK按鈕。

Visual Studio會(huì)把配置文件(App.config)作為一個(gè)命令行參數(shù)傳遞給EntLibConfig.exe。
5.在Open With對(duì)話框中,選中Enterprise Library Configuration并單擊OK按鈕。

6.如果在machine.config中已經(jīng)定義了connectionStrings配置區(qū),你會(huì)發(fā)現(xiàn)Enterprise Library Configuration工具會(huì)自動(dòng)創(chuàng)建一個(gè)數(shù)據(jù)訪問(wèn)應(yīng)用程序塊。選中Data Access Application Block | Connection Strings節(jié)點(diǎn),并選擇菜單Action | New | Connection String命令。

7.如果沒有數(shù)據(jù)訪問(wèn)應(yīng)用程序塊定義,在Application上右擊并選擇New | Data Access Application Block,即可創(chuàng)建一個(gè)新的數(shù)據(jù)訪問(wèn)應(yīng)用程序塊。

8.選擇Data Access Application Block | Connection Strings | Connection String節(jié)點(diǎn),修改Name屬性為QuickStarts Instance。

這里的名字跟代碼中使用的數(shù)據(jù)庫(kù)名相對(duì)應(yīng),它是創(chuàng)建了數(shù)據(jù)庫(kù)的別名在運(yùn)行時(shí)映射到具體的數(shù)據(jù)庫(kù)。。
9.在QuickStarts Instance下選擇Database節(jié)點(diǎn),在右邊修改Value屬性的值為EntLibQuickStarts。

10.相應(yīng)的,選擇Server節(jié)點(diǎn),修改它的值為(local)\SQLEXPRESS,即為你的數(shù)據(jù)庫(kù)服務(wù)器實(shí)例名。

11.選擇Data Access Application Block節(jié)點(diǎn),設(shè)置DefaultDatabase的值為QuickStarts Instance,如果你在代碼中不指定默認(rèn)的數(shù)據(jù)庫(kù)實(shí)例名,將會(huì)默認(rèn)的使用它。

12.選擇菜單File | Save All保存應(yīng)用程序的配置,并關(guān)閉Enterprise Library Configuration工具。
第六步 運(yùn)行應(yīng)用程序
1.在Visual Studio中選擇Debug | Start Without Debugging菜單命令運(yùn)行應(yīng)用程序,將會(huì)彈出App.config在代碼編輯器之外被修改的警告對(duì)話框,單擊Yes。運(yùn)行應(yīng)用程序后,單擊Customers | Count菜單顯示數(shù)據(jù)庫(kù)中Customers的數(shù)量,單擊Customers | Load數(shù)據(jù)將會(huì)填充到DataGrid中。
2.關(guān)閉應(yīng)用程序和Visual Studio。
完成后的解決方案代碼如C:\Program Files\Microsoft Enterprise Library January 2006\labs\cs\Data Access\exercises\ex01\end所示。
更多Enterprise Library的文章請(qǐng)參考《Enterprise Library系列文章》
Worktile,新一代簡(jiǎn)單好用、體驗(yàn)極致的團(tuán)隊(duì)協(xié)同、項(xiàng)目管理工具,讓你和你的團(tuán)隊(duì)隨時(shí)隨地一起工作。完全免費(fèi),現(xiàn)在就去了解一下吧。
https://worktile.com



浙公網(wǎng)安備 33010602011771號(hào)