學習筆記關于ADO.NET Connection方法簡介
大家有知道在ADO.NET中有七個對象,這里就不在一一的介紹了,今天我們只對在ADO.NET中重要的對象之一Connection對象的方法和大家一起分享一下。
1.ADO.NET Connection方法使用Open
建立與數據源的物理連接。格式:
- connection.Open ConnectionString,UserID,Password,Options
#T#注意:該方法是使Connection獲得初始化的方法,只有使用了該方法,Connection對象才真正在內存中存在。后面的參數都是可選參數,最簡單如:cn.Open(cn是1個connection對象),但如果這樣則需要預先設置好ConnectionString 等參數。其中,connectionstring是前面提到的連接字符串,UserID是建立連接的用戶的代號,Password是建立連接的用戶的密碼。該參數會覆蓋掉在連接字符串中設置的密碼;options提供了連接選擇,可選值只有adAsyncConnect異步連接,缺省為-1同步連接。
2.ADO.NET Connection方法使用Close
關閉1個數據連接對象,使該連接對象只留在本機內存中,可對其屬性更改后再重新建立連接。(注:如果不是關閉對象,而是將對象從內存中清除,應使用 Set connection對象變量=Nothing.).獲取數據源上的有關信息:OpenSchema方法,該方法獲取與數據源有關的信息,如獲取數據源中所有表的名稱等。格式:Set Recordset對象=cn.OpenSchema(查詢類別,[明細條目])。兩個參數都是常數值,其中,每個查詢類別中包含多個明細條目,每個明細條目作為返回的Recordset的一個字段,可以省略第二個參數,這時返回指定類別下的所有明細條目的信息生成一個Recordset。例如類別為 “表”adSchemaTables常數中包含了TABLE_NAME(表名稱)和TABLE_TYPE(表類型)等多個明細項目常數,而主要應了解類別常數adSchema…以得到數據源某方面信息,可以查對象瀏覽器。舉例如下(得到所有表名):
- Dim rstSchema As ADODB.Recordset
- Private Sub Form_Load()
- DataEnvironment1.Command1 '初始化數據環境
- Set rstSchema = DataEnvironment1.Connection1.OpenSchema(adSchemaTables)
- Do While Not rstSchema.EOF '獲取所有表名
- List1.AddItem rstSchema.Fields("TABLE_NAME")
- rstSchema.MoveNext
- Loop
- Set MSHFlexGrid1.DataSource = rstSchema '可看到更多信息。
- End Sub
Execute方法:執行1個SQL查詢,既可是選擇查詢,也可是動作查詢。如:
- cn.Execute "Delete From BB where 姓名 like '嫖客店'"
但要注意:使用ADO.NET Connection方法的Execute方法返回的游標類型是最基本的只能讀和只能向前移動的游標adOpenForwardOnly,因此,如果該方法執行一個選擇查詢返回一個記錄集時特別要明白。舉一個完整的例子如下:
- Dim cn As ADODB.Connection
- Dim rst As ADODB.Recordset
- Private Sub Command2_Click()
- rst.MoveNext
- Print rst("姓名")
- End Sub
- Private Sub Form_Load()
- Set cn = New ADODB.Connection
- Set rst = New ADODB.Recordset
- cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=C:\WINDOWS\Desktop\lxn.mdb" 連接字符串
- cn.Open 連接
- cn.Execute "Delete From BB where 姓名 like '嫖客店'" 動作查詢
- Set rst = cn.Execute("Select * from BB") 選擇查詢,生成記錄集
- Do While Not rst.EOF
- List1.AddItem rst("姓名")
- rst.MoveNext
- Loop
- End Sub