ASP.NET 2.0教程 數(shù)據(jù)源控件解析
在沒有講述 數(shù)據(jù)源控件 之前,我們先來認識一下數(shù)據(jù)源控件、數(shù)據(jù)綁定控件之間的關(guān)系。
數(shù)據(jù)源控件封裝所有獲取和處理數(shù)據(jù)的功能,主要包括連接數(shù)據(jù)源、使用Select、Update、Delete和Insert等對數(shù)據(jù)進行管理。
數(shù)據(jù)綁定控件主要用于將數(shù)據(jù)于前臺顯示出來。通常情況下,我們常常先用數(shù)據(jù)源控件取得數(shù)據(jù)集合,然后使用數(shù)據(jù)綁定控件將數(shù)據(jù)集合綁定并呈現(xiàn)在頁面上。
數(shù)據(jù)綁定控件包括GridView、DetailsView、FormView、TreeView、Menu等;
數(shù)據(jù)源控件包括SqlDataSource、AccessDataSource、ObjectDataSource、XmlDataSource、SiteMapDataSource,后者正是我們接下來幾節(jié)要學(xué)習(xí)的內(nèi)容。
以上5個數(shù)據(jù)源控件我們都可以通過vs2005左側(cè)工具欄,在“數(shù)據(jù)”選項欄中拖拉至頁面來完成調(diào)用,當然和其他控件一樣我們也可以直接在.aspx頁面文件中以代碼的方式進行調(diào)用。
1、SqlDataSource控件。
.aspx頁面中的基本聲明代碼:
- 〈 asp:SqlDataSource Id="控件Id" runat="server"
- ConnectionString="連接數(shù)據(jù)源字符串"
- ProviderName="數(shù)據(jù)提供程序"
- SelectCommand="查詢用的SQL語句"
- UpdateCommand="更新用的SQL語句"
- DeleteCommand="刪除用的SQL語句"
- InsertCommand="寫入用的SQL語句"
- DataSourceMode="獲取數(shù)據(jù)后數(shù)據(jù)返回的模式" 〉
- 〈 /asp:SqlDataSource 〉
常用屬性介紹:
關(guān)于屬性的設(shè)置,我們都可以在頁面的設(shè)計界面中點選SqlDataSource控件,然后在右側(cè)屬性選項卡中進行查看和修改。當我們選擇某項屬性時,屬性選項卡下方的提示區(qū)域?qū)@示該屬性的含義及用途,而該屬性后面的值區(qū)域則有可能會出現(xiàn)值列表以供選擇。
這里我們只介紹常用屬性,其他屬性大家可以通過以上方法進行查看和嘗試。
Id:控件id,就像一個人的身份證號一樣,一個頁面中不能有重復(fù)。
ConnectionString:連接數(shù)據(jù)源的字符串,關(guān)于連接字符串請參考:http://www.itgao.com/html/2007-04/20550.html
ProviderName:獲取或設(shè)置SqlDataSource控件連接數(shù)據(jù)源時所使用的提供程序名稱。
SelectCommand:查詢用的SQL語句或者存儲過程名稱
SelectCommandType:SelectCommand屬性的值的類型,包含Text(文本型)和StoreProcedure(存儲過程)
UpdateCommand:更新用的SQL語句或者存儲過程名稱
UpdateCommandType:UpdateCommand屬性的值的類型,包含Text(文本型)和StoreProcedure(存儲過程)
DeleteCommand:刪除用的SQL語句或者存儲過程名稱
DeleteCommandType:DeleteCommand屬性的值的類型,包含Text(文本型)和StoreProcedure(存儲過程)
InsertCommand:寫入用的SQL語句或者存儲過程名稱
InsertCommand屬性的值的類型,包含Text(文本型)和StoreProcedure(存儲過程)
DataSourceMode:獲取數(shù)據(jù)后數(shù)據(jù)返回的模式,包含兩個屬性值:DataSet和DataReader,默認為DataSet
創(chuàng)建數(shù)據(jù)庫連接:
vs2005可視化界面下,我們對SqlDataSource的某些屬性進行配置時,系統(tǒng)可能會要求我們事先建立一個可用的數(shù)據(jù)庫連接.畢竟,一個有效的數(shù)據(jù)庫連接是我們對數(shù)據(jù)庫進行操作的基礎(chǔ).
步驟:對SqlDataSource的"ConnectionString"屬性進行修改,如下圖:
在"選擇數(shù)據(jù)源"對話框中我們根據(jù)自己的數(shù)據(jù)庫類型來選擇數(shù)據(jù)源和數(shù)據(jù)提供程序.右側(cè)說明區(qū)域會提供相應(yīng)說明.
如果我們選擇Microsoft SQL Server,點擊"繼續(xù)"按鈕后,系統(tǒng)會彈出"添加連接設(shè)置框",我們只需要根據(jù)下圖進行設(shè)置就可以了:
如果我們選擇Microsoft Access 數(shù)據(jù)庫文件 (OLE DB),點擊"繼續(xù)"按鈕后,將需要對以下圖中內(nèi)容進行設(shè)置:
其他幾種數(shù)據(jù)庫類型的設(shè)置大同小異,在此不再累述.
配置Command命令語句:
在正確配置SqlDataSource的Command命令后,SqlDataSource數(shù)據(jù)源才能正常地對數(shù)據(jù)庫進行各種操作.
步驟:先拿SelectCommand命令為例.
對SqlDataSource的"SelectQuery"屬性進行修改,如下圖:
如果選用查詢生成器來生成SQL語句的話,我們需要進行如下操作:
最后“確定”即可。
同樣的操作,配置完你需要的Command命令.
#p#
2、AccessDataSource控件。
SqlDataSource控件可以訪問任何OLEDB或符合ODBC的數(shù)據(jù)源,也可以訪問Oracle數(shù)據(jù)庫,而AccessDataSource控件只能訪問Access數(shù)據(jù)庫.
對AccessDataSource控件來說,必須首先配置其DataFile屬性才能繼而對Command屬性進行很好的配置.
該屬性用于指定需要訪問的Access數(shù)據(jù)庫文件(.mdb)的路徑.但是需要注意的是,必須首先將數(shù)據(jù)庫文件添加到當前項目中(一般放到App_Data文件夾中)才能順利的完成配置.
添加數(shù)據(jù)庫到項目的方法:
右側(cè)"服務(wù)器資源管理器"選項卡中,數(shù)據(jù)連接>>>右鍵"添加連接">>>然后彈出"添加連接"配置框,其配置方法和SqlDataSource控件中的做法相同,但是此時數(shù)據(jù)源我們只能選擇Access,因為我們用的是AccessDataSource控件.
AccessDataSource控件其他屬性的配置和SqlDataSource控件基本相同,不再累述.
【編輯推薦】