認識ADO和ADONet
ActiveX Data Object(簡稱ADO)是微軟提供的數據訪問模型依據這個模型可很輕松的操作數據庫同時ADO受到微軟所以開發工具的支持所以無論是VBVCASP開發都可以使用所以開發ASP數據庫應用程序只需在代碼中嵌入SQL(結構化查詢語言)命令用戶就可以很輕松的輸入更新和刪除後台的數據庫記錄當用戶端的浏覽器填好表單所要求輸入的資料並按下Submit(確認)按鈕後經過互聯網內聯網傳送HTTP請求到WEB服務器該請求在WEB服務器執行一個表單所指定的Active Server Pages程序(後綴名為ASP的文檔)
從ADONet不僅僅是ADO的一個簡單升級它是微軟NET戰略的一個重要組成部分那麼到底和以前有什麼不同呢?現在就讓本文來告訴你
以前在ADO中進行數據處理的主要方法是OLEDB現在在ADONet中也是如此但是微軟為了更好地支持目前廣泛使用的兩個數據庫Oracle和SQL Server對OLEDB做了專門的擴展它們分別是OracleClient和SQLClient 類當然由於數據庫產品很多為了便於以前的OLEDB的程序升級故也對OLEDB本身做了升級處理在Net中表現為OLEDB類
那麼這三個類——OLEDBOracleClient和SQLClient在編程使用上到底有什麼不同呢?值得慶幸的是在Net中進行數據庫的編程時不管你使用上面提到的個類中的哪一個類這個類在語法和用法上都大同小異可以用一通百通來形容
怎樣學習ADONet技術
筆者在學習和使用了ADONet編程後總結出下面個必需的步驟而且這個步驟的順序是絕對不可以調換的如果在以後的編程中發現個步驟的順序換了或缺了一個步驟那麼你的代碼肯定是錯的
使用對應類中的連接方法來連接數據庫如使用SQLClient類那麼就用SqlConnection建立數據庫的鏈接
打開此鏈接
執行對應類中的命令方法來指定要執行的SQL語句如使用SQLClient類就使用SqlCommand執行指定的SQL語句
下面舉出的兩個例子就是在Net中使用ADONet編程的代碼由於SQL Server 在使用中比Oracle簡單所以這裡的數據庫使用Microsoft的SQL Server 原因是它在安裝後無須配置就可以直接使用既然訪問的是SQL Server那麼使用的類當然是SQLClient類這兩個例子是
在數據庫中對數據進行添加刪除修改
利用ADO技術建立一個SQL Server 的數據庫
例 一
啟動SQL Server然後建立一個數據庫和一個表並且在表中一定要有主鍵隨便輸入一些數據完成後保存此表
本文使用的表結構如下
表名使用系統默認的表名table
然後打開VSNet建立一個新的工程並從工具箱中將SqlDataAdapter控件拖動到窗口底部隨後數據適配器配置向導窗口會自動運行按照向導提示完成操作(如圖)
需要注意的是在出現的生成SQL語句窗口中要輸入標准的select語句在本例中我們將從表Table中返回id和d這兩列所以應該輸入SELECT id d FROM Table語句當然單擊查詢生成器按鈕系統也可以自動生成這條語句
當完成數據適配器配置向導後你會在窗口的底部發現系統自動添加了SqlConnection接下來右擊SqlDataAdapter在快捷菜單中選擇生成數據集隨後可以看見生成數據集設置窗口保持默認設置並單擊確定現在又會發現在設計窗口下多了一個Dataset
到此為止就差最後一個控鍵SqlCommand我們只要在工具欄中將它拖放過來並修改其屬性的Connection設置為SqlConnection並在CommandText屬性中利用查詢生成器為其生成select語句即可到現在為止我們就完成了ADONet訪問數據庫的一大半了
網格是顯示數據的最好方法為了讓數據顯示在網格中我們需要添加此控件並且修改其屬性添加的方法就是直接從工具箱中將它拖過來即可不過它的屬性設置倒是很簡單只要將Datasource設置為Datasettable即可table是表示表的名字
最後添加兩行代碼即可完成對數據的添加刪除修改的操作
在Form_Load部分加入Sql DataAdapterFillDataSet ″Table″代碼
Private Sub Form_LoadByVal sender As SystemObject ByVal e As SystemEventArgs Handles MyBaseLoad
SqlDataAdapterFillDataSet ″Table″將表中的數據添加到DataSet中
End Sub
添加一個Button在Button_Click中加入SqlDataAdapterUpdateDataSet ″Table″代碼
Private Sub Button_ClickByVal sender As SystemObject ByVal e As SystemEventArgs Handles ButtonClick
SqlDataAdapterUpdateDataSet″Table″ 完成數據庫的添加刪除修改功能
End Sub
程序說明其中SqlDataAdapterFil語句是把表中具體的數據添入DataSet後而SqlDataAdapterUpdate是表示當完成對數據的修改後使用Update進行數據庫的更新使修改的數據生效按F運行程序你就可以看見表中的數據都顯示出來了同時你可以隨意對它們進行修改如要刪除數據只要按下鍵盤上的del鍵即可
例一中使用控件的簡單介紹
例 二
這裡為了讓大家知道OLEDB和SQLClient在Net中多麼地接近此例子將使用Net中的OLEDB類在這個程序中我們將使用ADONet中的OLEDB類和SQL語句來建立數據庫表接著上例添加個命令按鈕不修改任何屬性並再加入如下代碼
Public Class Form
Inherits SystemWindowsFormsForm
Private Sub Button_ClickByVal sender As SystemObject ByVal e As SystemEventArgs
Handles ButtonClick
Dim con As New OleDbOleDbCon nection″Provider=SQLOLEDBIntegrated
Security=SSPIPersist Security Info=FalseInitial Catalog=NorthwindData
Source=Use Procedure for Prepare=Auto Translate=TruePacket
Size=Workstation ID=JUse En cryption for Data=FalseTag with column collation
when possible=False″建立與數據庫的連接
conOpen打開連接
Dim cmd As New OleDbOleDbCommand″create database jk″ con 創建數據jk
cmdExecuteNonQuery執行創建命令
conClose關閉連接
建立數據庫
End Sub
程序說明在Button_Click中可以看出連接對象的連接字符串和前面由系統自動生成的連接字符串不同原因是我門要創建的新數據庫jk 還並不存在所以為了使連接數據庫成功並且有足夠的權利來建立jk數據庫就必須通過以SQLServer管理員的身分連接一個SQL Server中已有的數據庫獲得對整個SQL Server的訪問控制權限再建立jk數據庫這裡連接的是Northwind數據庫而後面的的Button_Click直接連接到jk數據庫因為我們要在jk數據庫中建立表
Private Sub Button_ClickByVal sender As SystemObject ByVal e As
SystemEventArgs Handles ButtonClick
Dim con As New OleDbOleDbCon nection″Provider=SQLOLEDBIntegrated
Security=SSPIPersist Security Info=FalseInitial Catalog=jkData Source=Use
Procedure for Prepare=Auto Trans late=TruePacket Size=Workstation ID=JUse
Encryption for Data=FalseTag with column collation when possible=False″建立與數據庫的連接
conOpen打開連接
Dim cmd As New OleDbOleDbCom mand″create table kkid int identity not
null constraint id primary keyname char not null″ con 建立表kk
cmdExecuteNonQuery
Dim cmd As New OleDbOleDbCom mand″create table ppid int not nullads
char null″ con 建立表pp
cmdExecuteNonQuery執行建立表命令
conClose關閉連接
建立個表
End Sub
End Class
程序說明程序中Button_Click建立了兩個表kk和pp其中kk包括一個種子列並且設定為主鍵pp是一個一般的表其實通過Button_Click中所用的方法我們還可以建立數據庫中的存儲過程約束等其方法就是將OleDbCommand後的建立表的SQL語句換成存儲過程約束的SQL語句即可由於SQL語句已經超出了本文的范圍所以這裡不做講解
總 結
對於ADONet的編程來說除了要掌握ADONet的技術外還必須掌握數據庫的一些知識本文只是編寫了兩個簡單的數據庫程序其目的是讓大家知道ADONet的編程其實本身並不復雜
From:http://tw.wingwit.com/Article/program/net/201311/13743.html