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