認(rèn)識ADO和ADO.Net ActiveX Data Object(簡稱ADO)是微軟提供的數(shù)據(jù)訪問模型,依據(jù)這個模型可很輕松的操作數(shù)據(jù)庫。同時ADO受到微軟所以開發(fā)工具的支持,所以無論是VB、VC、ASP開發(fā)都可以使用。所以開發(fā)ASP數(shù)據(jù)庫應(yīng)用程序,只需在代碼中嵌入SQL(結(jié)構(gòu)化查詢語言)命令,用戶就可以很輕松的輸入、更新、和刪除后臺的數(shù)據(jù)庫記錄。當(dāng)用戶端的瀏覽器填好表單所要求輸入的資料并按下“Submit(確認(rèn))”按鈕后,經(jīng)過互聯(lián)網(wǎng)、內(nèi)聯(lián)網(wǎng)傳送HTTP請求到WEB服務(wù)器,該請求在WEB服務(wù)器執(zhí)行一個表單所指定的Active Server Pages程序(后綴名為.ASP的文檔)。 從ADO.Net不僅僅是ADO的一個簡單升級,它是微軟.NET戰(zhàn)略的一個重要組成部分,那么到底和以前有什么不同呢?現(xiàn)在就讓本文來告訴你。 以前在ADO中進(jìn)行數(shù)據(jù)處理的主要方法是OLEDB,現(xiàn)在在ADO.Net中也是如此。但是微軟為了更好地支持目前廣泛使用的兩個數(shù)據(jù)庫Oracle和SQL Server對OLEDB做了專門的擴(kuò)展,它們分別是OracleClient和SQLClient 類,當(dāng)然由于數(shù)據(jù)庫產(chǎn)品很多,為了便于以前的OLEDB的程序升級,故也對OLEDB本身做了升級處理。在.Net中表現(xiàn)為OLEDB類。 那么這三個類——OLEDB、OracleClient和SQLClient在編程使用上到底有什么不同呢?值得慶幸的是在.Net中進(jìn)行數(shù)據(jù)庫的編程時,不管你使用上面提到的3個類中的哪一個類,這3個類在語法和用法上都大同小異,可以用一通百通來形容。 怎樣學(xué)習(xí)ADO.Net技術(shù) 筆者在學(xué)習(xí)和使用了ADO.Net編程后,總結(jié)出下面3個必需的步驟,而且這3個步驟的順序是絕對不可以調(diào)換的,如果在以后的編程中發(fā)現(xiàn)3個步驟的順序換了或缺了一個步驟,那么你的代碼肯定是錯的: 1.使用對應(yīng)類中的連接方法來連接數(shù)據(jù)庫。如使用SQLClient類,那么就用SqlConnection1建立數(shù)據(jù)庫的鏈接。 2.打開此鏈接。 3.執(zhí)行對應(yīng)類中的命令方法來指定要執(zhí)行的SQL語句。如使用SQLClient類就使用SqlCommand執(zhí)行指定的SQL語句。 下面舉出的兩個例子就是在.Net中使用ADO.Net編程的代碼。由于SQL Server 在使用中比Oracle簡單,所以這里的數(shù)據(jù)庫使用Microsoft的SQL Server 2000。原因是它在安裝后無須配置就可以直接使用。既然訪問的是SQL Server,那么使用的類當(dāng)然是SQLClient類。這兩個例子是: 1.在數(shù)據(jù)庫中對數(shù)據(jù)進(jìn)行添加,刪除,修改。 2.利用ADO技術(shù)建立一個SQL Server 2000的數(shù)據(jù)庫。 例 一 啟動SQL Server2000,然后建立一個數(shù)據(jù)庫和一個表,并且在表中一定要有主鍵,隨便輸入一些數(shù)據(jù)。完成后保存此表。 本文使用的表結(jié)構(gòu)如下:
表名:使用系統(tǒng)默認(rèn)的表名table1 然后打開VS.Net建立一個新的工程,并從工具箱中將“SqlDataAdapter”控件拖動到窗口底部,隨后“數(shù)據(jù)適配器配置向?qū)А贝翱跁詣舆\(yùn)行,按照向?qū)崾就瓿刹僮鳎ㄈ鐖D)。 需要注意的是,在出現(xiàn)的“生成SQL語句”窗口中要輸入標(biāo)準(zhǔn)的select語句,在本例中我們將從表Table1中返回id和d這兩列。所以應(yīng)該輸入“SELECT id d FROM Table1”語句,當(dāng)然單擊“查詢生成器”按鈕系統(tǒng)也可以自動生成這條語句。 當(dāng)完成“數(shù)據(jù)適配器配置向?qū)А焙螅銜诖翱诘牡撞堪l(fā)現(xiàn)系統(tǒng)自動添加了“SqlConnection1”。接下來右擊“SqlDataAdapter1”,在快捷菜單中選擇“生成數(shù)據(jù)集”,隨后可以看見“生成數(shù)據(jù)集”設(shè)置窗口,保持默認(rèn)設(shè)置并單擊“確定”。現(xiàn)在又會發(fā)現(xiàn)在設(shè)計窗口下多了一個“Dataset11”。 到此為止,就差最后一個控鍵“SqlCommand”,我們只要在工具欄中將它拖放過來并修改其屬性的“Connection”設(shè)置為“SqlConnection1”,并在“CommandText”屬性中利用“查詢生成器”為其生成select語句即可。到現(xiàn)在為止,我們就完成了ADO.Net訪問數(shù)據(jù)庫的一大半了。 網(wǎng)格是顯示數(shù)據(jù)的最好方法,為了讓數(shù)據(jù)顯示在網(wǎng)格中我們需要添加此控件并且修改其屬性。添加的方法就是直接從工具箱中將它拖過來即可。不過它的屬性設(shè)置倒是很簡單,只要將“Datasource”設(shè)置為“Dataset11.table”即可,table是表示表的名字。 最后添加兩行代碼即可完成對數(shù)據(jù)的添加、刪除、修改的操作。 在Form1_Load部分加入“Sql DataAdapter1.FillDataSet11 ″Table1″”,代碼: Private Sub Form1_LoadByVal sender As System.Object ByVal e As System.EventArgs Handles MyBase.Load 添加一個Button1在Button1_Click中加入“SqlDataAdapter1.UpdateDataSet11 ″Table1″”代碼。 Private Sub Button1_ClickByVal sender As System.Object ByVal e As System.EventArgs Handles Button1.Click 程序說明:其中SqlDataAdapter1.Fil語句是把表中具體的數(shù)據(jù)添入DataSet11后,而SqlDataAdapter1.Update是表示當(dāng)完成對數(shù)據(jù)的修改后使用Update進(jìn)行數(shù)據(jù)庫的更新,使修改的數(shù)據(jù)生效。按“F5”運(yùn)行程序,你就可以看見表中的數(shù)據(jù)都顯示出來了,同時你可以隨意對它們進(jìn)行修改。如要刪除數(shù)據(jù),只要按下鍵盤上的“del”鍵即可。 例一中使用控件的簡單介紹:
例 二 這里為了讓大家知道OLEDB和SQLClient在.Net中多么地接近,此例子將使用.Net中的OLEDB類。在這個程序中我們將使用ADO.Net中的OLEDB類和SQL語句來建立數(shù)據(jù)庫、表。接著上例添加2個命令按鈕,不修改任何屬性,并再加入如下代碼: Public Class Form1 程序說明:在Button1_Click中可以看出連接對象的連接字符串和前面由系統(tǒng)自動生成的連接字符串不同。原因是我門要創(chuàng)建的新數(shù)據(jù)庫jk 還并不存在,所以為了使連接數(shù)據(jù)庫成功,并且有足夠的權(quán)利來建立jk數(shù)據(jù)庫,就必須通過以SQLServer管理員的身分連接一個SQL Server中已有的數(shù)據(jù)庫,獲得對整個SQL Server的訪問控制權(quán)限,再建立jk數(shù)據(jù)庫。這里連接的是Northwind數(shù)據(jù)庫。而后面的的Button2_Click直接連接到j(luò)k數(shù)據(jù)庫。因?yàn)槲覀円趈k數(shù)據(jù)庫中建立表。 Private Sub Button2_ClickByVal sender As System.Object ByVal e As 程序說明:程序中Button2_Click建立了兩個表,kk和pp。其中kk包括一個種子列并且設(shè)定為主鍵。pp是一個一般的表。其實(shí)通過Button2_Click中所用的方法我們還可以建立數(shù)據(jù)庫中的存儲過程、約束等。其方法就是將OleDbCommand后的建立表的SQL語句換成存儲過程、約束的SQL語句即可。由于SQL語句已經(jīng)超出了本文的范圍,所以這里不做講解。 總 結(jié) 對于ADO.Net的編程來說除了要掌握ADO.Net的技術(shù)外,還必須掌握數(shù)據(jù)庫的一些知識。本文只是編寫了兩個簡單的數(shù)據(jù)庫程序,其目的是讓大家知道,ADO.Net的編程其實(shí)本身并不復(fù)雜。 |
溫馨提示:喜歡本站的話,請收藏一下本站!