數(shù)據(jù)操作控件
在ASP.NET 3.5中提供了許多非常強(qiáng)大的數(shù)據(jù)庫操作控件。使用這些控件可以輕松地創(chuàng)建出功能強(qiáng)大的數(shù)據(jù)庫操作應(yīng)用程序。這些控件包括GridView、DataList、DetailsView、SqlDataSource和FormView等。本節(jié)將對(duì)其中的常用數(shù)據(jù)操作控件作詳細(xì)介紹。
26.2.1 使用SqlDataSource控件連接數(shù)據(jù)
SqlDataSource控件在數(shù)據(jù)庫的操作中,起著橋梁的作用。它連接了數(shù)據(jù)庫和用于顯示數(shù)據(jù)庫中內(nèi)容的控件。通過該控件,可以設(shè)置訪問數(shù)據(jù)庫的方法、顯示數(shù)據(jù)的方法等屬性。它常與GridView和DetailView等控件一起使用。用于操作數(shù)據(jù)庫的這些控件位于"工具箱"中的"數(shù)據(jù)"欄中,如圖26.1所示。
 |
圖26.1 數(shù)據(jù)控件 |
SqlDataSource控件可以與使用ADO.NET類,以及ADO.NET支持的任何數(shù)據(jù)庫進(jìn)行數(shù)據(jù)交互。這些數(shù)據(jù)庫包括Microsoft SQL Server、Oracle數(shù)據(jù)庫,以及System.Data.OleDb和System.Data.Odbc數(shù)據(jù)源。
使用SqlDataSource控件,可以在Web頁中訪問和操作數(shù)據(jù),而無須直接使用ADO.NET提供的類。當(dāng)然,這需要提供用于連接到數(shù)據(jù)庫的連接字符串,同時(shí)定義操作數(shù)據(jù)的SQL語句或存儲(chǔ)過程。在運(yùn)行時(shí),SqlDataSource控件會(huì)自動(dòng)打開數(shù)據(jù)庫連接,執(zhí)行其中指定的SQL語句或存儲(chǔ)過程,最后返回執(zhí)行結(jié)果,并關(guān)閉連接。 使用SqlDataSource控件連接到數(shù)據(jù)庫(1)
在Visual Studio 2008中,可以使用很少的代碼或不使用代碼就可以實(shí)現(xiàn)在網(wǎng)頁中顯示和操作數(shù)據(jù)及數(shù)據(jù)庫。下面將介紹通過SqlDataSource連接到數(shù)據(jù)庫的方法。
(1)打開Visual Studio 2008,新建一個(gè)ASP.NET Web應(yīng)用程序,并命名為SqlDataSourceTest。
(2)頁面切換到"設(shè)計(jì)"視圖。在工具箱中的"數(shù)據(jù)"欄里找到SqlDataSource控件,并將其拖放到頁面中,如圖26.2所示。
|
(點(diǎn)擊查看大圖)圖26.2 SqlDataSource控件 | (3)圖中的右邊出現(xiàn)了"SqlDataSource任務(wù)",單擊"配置數(shù)據(jù)源"鏈接,彈出如圖26.3所示"配置數(shù)據(jù)源"對(duì)話框。下面為其創(chuàng)建一個(gè)數(shù)據(jù)庫連接。
|
(點(diǎn)擊查看大圖)圖26.3 "配置數(shù)據(jù)源"對(duì)話框 |
(4)單擊"新建連接(C)…"按鈕,在"選擇數(shù)據(jù)源"對(duì)話框中選擇數(shù)據(jù)源為Microsoft SQL Server。單擊"繼續(xù)"按鈕,彈出如圖26.4所示"添加連接"對(duì)話框,在"服務(wù)器名選擇"項(xiàng)對(duì)應(yīng)的下拉菜單中選擇自己所建立的數(shù)據(jù)庫服務(wù)器,本文例程為LIRONG。這時(shí)"連接到一個(gè)數(shù)據(jù)庫"一欄中的兩個(gè)單選按鈕處于可選狀態(tài),在"選擇或輸入一個(gè)數(shù)據(jù)庫名"對(duì)應(yīng)的下拉列表框中選擇一個(gè)帶有實(shí)例的數(shù)據(jù)庫,如AdventureWorks。單擊"測(cè)試連接"按鈕,系統(tǒng)會(huì)彈出一個(gè)測(cè)試成功提示框,表示可以操作數(shù)據(jù)庫。單擊"確定"按鈕,返回到如圖26.3所示界面。只是其中的"應(yīng)用程序連接數(shù)據(jù)庫應(yīng)使用那個(gè)數(shù)據(jù)庫連接?"對(duì)應(yīng)的下拉選項(xiàng)被選為lirong. AdventureWorks.dbo。
(5)展開如圖26.3所示對(duì)話框中的"連接字符串"節(jié)點(diǎn),可以看到其自動(dòng)建立的如下數(shù)據(jù)庫連接字符串。
Data Source=LIRONG;Initial Catalog=AdventureWorks;Integrated Security=True
|
(6)單擊"下一步"按鈕,彈出如圖26.5所示對(duì)話框。該對(duì)話框中提示是否將連接字符串保存到應(yīng)用程序配置文件(Web.Config)中,如保持默認(rèn)則勾選該項(xiàng)。
|
(點(diǎn)擊查看大圖)圖26.4 "添加連接"對(duì)話框 |
|
(點(diǎn)擊查看大圖)圖26.5 保存到配置文件 |
(7)單擊"下一步"按鈕,彈出"配置Select語句"對(duì)話框,選定其中的"指定來自表或視圖的列"單選項(xiàng),在名稱對(duì)應(yīng)下拉列表框中選擇AdventureWorks數(shù)據(jù)庫自帶的表DatabaseLog,如圖26.6所示。
(8)在"列"列表框可以看到,其中列出了該表中所有的列。選中其中任意幾個(gè)列,如DatabaseLog ID、PostTime、DatabaseUser和Event,可以看到SELECT語句文本框自動(dòng)生成了相應(yīng)功能的查詢語句。在"列"列表框的右邊"只返回唯一行"表示,如果查詢結(jié)果是多行,則只返回其中的第一行。WHERE(W)用于配置查詢條件。再單擊ORDER BY(R),得到配置排序?qū)υ捒?。選擇"排序方式"中的DatabaseLog ID,如圖26.7所示。
保持默認(rèn)的"升序"排列,并單擊"確定"按鈕,可以看到系統(tǒng)自動(dòng)生成如下所示的查詢語句。
|
(點(diǎn)擊查看大圖)圖26.6 配置數(shù)據(jù)檢索方式 |
SELECT [DatabaseLogID], [DatabaseUser], [Event], [PostTime] FROM [DatabaseLog] ORDER BY [DatabaseLogID]
|
|