認識ADO和ADO.Net
ActiveX Data Object(簡稱ADO)是微軟提供的數據訪問模型,依據這個模型可很輕松的操作數據庫。同時ADO受到微軟所以開發工具的支持,所以無論是VB、VC、ASP開發都可以使用。所以開發ASP數據庫應用程序,只需在代碼中嵌入SQL(結構化查詢語言)命令,用戶就可以很輕松的輸入、更新、和刪除后臺的數據庫記錄。當用戶端的瀏覽器填好表單所要求輸入的資料并按下“Submit(確認)”按鈕后,經過互聯網、內聯網傳送HTTP請求到WEB服務器,該請求在WEB服務器執行一個表單所指定的Active Server Pages程序(后綴名為.ASP的文檔)。
從ADO.Net不僅僅是ADO的一個簡單升級,它是微軟.NET戰略的一個重要組成部分,那么到底和以前有什么不同呢?現在就讓本文來告訴你。
以前在ADO中進行數據處理的主要方法是OLEDB,現在在ADO.Net中也是如此。但是微軟為了更好地支持目前廣泛使用的兩個數據庫Oracle和SQL Server對OLEDB做了專門的擴展,它們分別是OracleClient和SQLClient 類,當然由于數據庫產品很多,為了便于以前的OLEDB的程序升級,故也對OLEDB本身做了升級處理。在.Net中表現為OLEDB類。
那么這三個類——OLEDB、OracleClient和SQLClient在編程使用上到底有什么不同呢?值得慶幸的是在.Net中進行數據庫的編程時,不管你使用上面提到的3個類中的哪一個類,這3個類在語法和用法上都大同小異,可以用一通百通來形容。
怎樣學習ADO.Net技術
筆者在學習和使用了ADO.Net編程后,總結出下面3個必需的步驟,而且這3個步驟的順序是絕對不可以調換的,如果在以后的編程中發現3個步驟的順序換了或缺了一個步驟,那么你的代碼肯定是錯的:
1.使用對應類中的連接方法來連接數據庫。如使用SQLClient類,那么就用SqlConnection1建立數據庫的鏈接。
2.打開此鏈接。
3.執行對應類中的命令方法來指定要執行的SQL語句。如使用SQLClient類就使用SqlCommand執行指定的SQL語句。
下面舉出的兩個例子就是在.Net中使用ADO.Net編程的代碼。由于SQL Server 在使用中比Oracle簡單,所以這里的數據庫使用Microsoft的SQL Server 2000。原因是它在安裝后無須配置就可以直接使用。既然訪問的是SQL Server,那么使用的類當然是SQLClient類。這兩個例子是:
1.在數據庫中對數據進行添加,刪除,修改。
2.利用ADO技術建立一個SQL Server 2000的數據庫。
例 一
啟動SQL Server2000,然后建立一個數據庫和一個表,并且在表中一定要有主鍵,隨便輸入一些數據。完成后保存此表。
本文使用的表結構如下:
id列 | int型 | 標志列 | 主鍵 |
d列 | char型 |
表名:使用系統默認的表名table1
然后打開VS.Net建立一個新的工程,并從工具箱中將“SqlDataAdapter”控件拖動到窗口底部,隨后“數據適配器配置向導”窗口會自動運行,按照向導提示完成操作(如圖)。
Private Sub Form1_Load?ByVal sender As System.Object? ByVal e As System.EventArgs? Handles MyBase.Load SqlDataAdapter1.Fill?DataSet11? ″Table1″?'將表中的數據添加到DataSet1中。 End Sub |
Private Sub Button1_Click?ByVal sender As System.Object? ByVal e As System.EventArgs? Handles Button1.Click SqlDataAdapter1.Update?DataSet11?″Table1″?' 完成數據庫的添加、刪除、修改功能。 End Sub |
SqlDataAdapter: | 建立數據庫的連接,完成數據庫的添加、刪除、修改功能的配置。 |
SqlConnection: | 建立連接字符為SqlCommand提供連接依據。 |
DataSet1: | 加載表結構和表數據,以便在表格中顯示具體數據。 |
SqlCommand: | 用來執行對表的各種具體的操作。 |
Public Class Form1 Inherits System.Windows.Forms.Form Private Sub Button1_Click?ByVal sender As System.Object? ByVal e As System.EventArgs? Handles Button1.Click Dim con As New OleDb.OleDbCon nection?″Provider=SQLOLEDB.1?Integrated Security=SSPI?Persist Security Info=False?Initial Catalog=Northwind?Data Source=.?Use Procedure for Prepare=1?Auto Translate=True?Packet Size=4096?Workstation ID=J?Use En cryption for Data=False?Tag with column collation when possible=False″?'建立與數據庫的連接 con.Open??'打開連接 Dim cmd As New OleDb.OleDbCommand?″create database jk″? con? '創建數據jk cmd.ExecuteNonQuery??'執行創建命令 con.Close??'關閉連接 '建立數據庫 End Sub |
Private Sub Button2_Click?ByVal sender As System.Object? ByVal e As System.EventArgs? Handles Button2.Click Dim con2 As New OleDb.OleDbCon nection?″Provider=SQLOLEDB.1?Integrated Security=SSPI?Persist Security Info=False?Initial Catalog=jk?Data Source=.?Use Procedure for Prepare=1?Auto Trans late=True?Packet Size=4096?Workstation ID=J?Use Encryption for Data=False?Tag with column collation when possible=False″?'建立與數據庫的連接 con2.Open??'打開連接 Dim cmd As New OleDb.OleDbCom mand?″create table kk?id int identity?1?1? not null constraint id primary key?name char?4? not null?″? con2? '建立表kk cmd.ExecuteNonQuery?? Dim cmd2 As New OleDb.OleDbCom mand?″create table pp?id int not null?ads char?20? null?″? con2? '建立表pp cmd2.ExecuteNonQuery??'執行建立表命令 con2.Close??'關閉連接 '建立2個表 End Sub End Class |
原文轉自:http://www.anti-gravitydesign.com