資源描述:
《初探adonet對sql server數(shù)據(jù)庫的數(shù)據(jù)訪問技術(shù)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、初探ADO.NET對SQLServer數(shù)據(jù)庫的數(shù)據(jù)訪問技術(shù)?焦麗萍??摘?要?ADO.NET是一具有互操作性且可伸縮性強的數(shù)據(jù)訪問體系結(jié)構(gòu),本文以C#為編程語言,系統(tǒng)、實例化地介紹了ADO.NET對SQLServer數(shù)據(jù)庫的聯(lián)接方法,并對常用數(shù)據(jù)訪問技術(shù)(如填加、刪除、更新以及顯示等)進行歸納介紹,以期為初學(xué)者提供參考。關(guān)鍵詞?ADO.NET?SQLServer?數(shù)據(jù)訪問技術(shù)?C#?基于WEB的編程時代,ADO.NET數(shù)據(jù)訪問體系結(jié)構(gòu)以其互操作性好、可伸縮性強的優(yōu)勢[1],已成為一種重要數(shù)據(jù)訪問模型,并且專門用于結(jié)構(gòu)松散、本質(zhì)非鏈接的Web應(yīng)用
2、程序。某種程度上,ADO.NET代表了最新版本的ADO技術(shù)。雖然VS.NET開發(fā)平臺可利用WEB窗體控件間接實現(xiàn),但作為程序員往往希望直接通過編寫代碼來實現(xiàn),然而目前系統(tǒng)性、實例化地報道此方面的文章不是很多,所以,系統(tǒng)、實例化的介紹ADO.NET數(shù)據(jù)訪問技術(shù)很有必要。1?ADO.NET數(shù)據(jù)訪問技術(shù)要點訪問ADO.NET中的數(shù)據(jù)源由兩種不同類型的托管提供程序控制:一種用于7.0或更高版本SQLServer數(shù)據(jù)庫,另一種適用于所有的OLEDB提供程序。若訪問SQLServer數(shù)據(jù)庫后者固然也可,但直接使用前者更為高效[2]。下面具體介紹ADO.NE
3、T對SQLServer數(shù)據(jù)庫的訪問技術(shù)。為便于介紹,以訪問數(shù)據(jù)庫LYB中USER表為例,其中USER表中含有USERID及USERNAME字段。?1.1引用名稱空間?由于在訪問數(shù)據(jù)時需要用到相關(guān)的數(shù)據(jù)供應(yīng)器類型,因此在進行數(shù)據(jù)訪問前首先在文件的開始處填加如下代碼,以引用名稱空間。<%@ImportNamespace="System.Data.SqlClient"%><%@ImportNamespace="System.Data"%>前者包含了SQLServer.NET數(shù)據(jù)供應(yīng)器類型,后者包含了獨立于供應(yīng)器的類型,如DataSet及DataTab
4、le等。1.2聯(lián)接數(shù)據(jù)庫數(shù)據(jù)的訪問主要根據(jù)應(yīng)用程序的需要而適時進行,一般在頁面調(diào)入時進行,因此可將數(shù)據(jù)的訪問放入中。?voidPage_Load(objectsender,System.EventArgse)?{?//頁面調(diào)入時觸發(fā)?}數(shù)據(jù)訪問的第一步必須是與訪問的數(shù)據(jù)庫建立聯(lián)接。.net中Connection類提供與數(shù)據(jù)庫的連接,有OleDbConnection類和SqlConnection類,分別針對不同的數(shù)據(jù)庫。SqlConnection針對sqlse
5、rver7.0或者以上版本。聯(lián)接的方法常用有兩種,具體如下:通常方法一使用的較多,但若程序需重新聯(lián)接其他數(shù)據(jù)庫時方法二更為有效,只需將ConnectionString重新賦值。1.3訪問與操作數(shù)據(jù)庫?建立數(shù)據(jù)庫連接以后須要訪問和操作數(shù)據(jù)庫,訪問與操作數(shù)據(jù)庫主要是根據(jù)SqlCommand類實現(xiàn)。訪問即創(chuàng)建Command對象,而操作數(shù)據(jù)庫則通過SqlCommand對象提供4個執(zhí)行方法(ExecuteNonQuery、ExecuteScalar、ExecuteReader、ExecuteXmlReader)實現(xiàn)。ExecuteNonQuery方法執(zhí)行
6、后不返回結(jié)果的命令,通常使用它執(zhí)行插入、刪除、更新操作,對數(shù)據(jù)聯(lián)接執(zhí)行SQL語句并返回受影響的行數(shù);ExecuteReader方法執(zhí)行后將SQL語句發(fā)送到數(shù)據(jù)庫并生成一個SqlDataReader;ExecuteScalar方法執(zhí)行后返回單個值的命令,即返回第一行第一個字段的值,忽略額外的列或行;ExecuteXmlReader方法執(zhí)行后將SQL語句發(fā)送到數(shù)據(jù)庫并生成一個XmlReader。訪問及操作數(shù)據(jù)的代碼具體如下:若增加、刪除、更新數(shù)據(jù)則strCmd或myCmd.CommandText的值分別為SQL的insert、delete、upda
7、te語句即可。如在上述USER表中實現(xiàn)數(shù)據(jù)增、刪及編輯操作,具體代碼如下。1.4顯示數(shù)據(jù)ADO.NET中有兩種方法可以顯示數(shù)據(jù)DataReader方法和DataSet方法。DataSet是一個存在于內(nèi)存中的數(shù)據(jù)庫,即其為離線式聯(lián)接,并沒有同數(shù)據(jù)庫建立即時聯(lián)接,主要用于對單層數(shù)據(jù)、XML數(shù)據(jù)和關(guān)系數(shù)據(jù)進行存儲、遠程處理和編程,是專門為WEB而設(shè)計。用DataSet記錄的數(shù)據(jù)實際為是一個表,而對表的操作,只是對DataSet的操作,并沒有改變數(shù)據(jù)庫,若寫入或更新數(shù)據(jù)庫,必須更新DataSet[3]。關(guān)于DataSet的使用對于一般開發(fā)人員來說頗有微
8、詞,而且關(guān)于此方面介紹的資料也很多,本文僅介紹利用DataReader對象實現(xiàn)數(shù)據(jù)顯示的幾種方法。1)結(jié)合DatagridWEB窗體控件顯示數(shù)據(jù)?2)