關(guān)于ADO.NET的對(duì)象Connection詳細(xì)介紹
隨著時(shí)代的發(fā)展,ADO.NET的功能也在逐步的強(qiáng)大,在關(guān)注技巧的東西同時(shí)我們也要注重基礎(chǔ)知識(shí)的掌握,這里我們就回顧一下關(guān)于ADO.NET的對(duì)象中的Connection對(duì)象吧。Connection對(duì)象提供與包含路徑,口令和連接選項(xiàng)的數(shù)據(jù)源的鏈接;Command對(duì)象保存一個(gè)針對(duì)數(shù)據(jù)源的將被執(zhí)行的命令,最常見(jiàn)的是SQL命令或存儲(chǔ)過(guò)程;Recordset對(duì)象保存在記錄集中執(zhí)行查詢參數(shù)的記錄以及漫游記錄的光標(biāo);Error對(duì)象包含關(guān)于數(shù)據(jù)訪問(wèn)期間可能發(fā)生錯(cuò)誤的錯(cuò)誤信息;Parameter對(duì)象存儲(chǔ)由Command對(duì)象使用的單個(gè)參數(shù);Field對(duì)象為記錄集中包含的所有字段集合;Property對(duì)象是由Data Provider驅(qū)動(dòng)程序返回的數(shù)據(jù)源的屬性。
#T#ADO的核心是Connection,Recordset,Command對(duì)象。這三個(gè)ADO.NET的對(duì)象可獨(dú)立使用,也可互相連接使用。而其他對(duì)象,如 Error集合存儲(chǔ)在Connection對(duì)象中,在使用這些對(duì)象前都必須先聲明對(duì)象變量,然后用Set進(jìn)行賦值,才可使用,在聲明時(shí)還可以用 WithEvents將事件也聲明進(jìn)來(lái),使得ADO對(duì)象變得象控件那樣易于使用。有兩個(gè)對(duì)象中包含了事件,即Recordset對(duì)象和 Connection對(duì)象。只要如Dim WithEvents rst As ADODB.Recordset這樣聲明后,就能在代碼窗口的下拉表中找到該對(duì)象,真的和ADO控件一樣易于使用,連事件也大致相同。
ADO.NET的對(duì)象Connection
用于建立與數(shù)據(jù)源的連接(包括客戶機(jī)/服務(wù)器結(jié)構(gòu)的連接)。在大多數(shù)應(yīng)用程序中最好把一個(gè)Connection對(duì)象保存為全局級(jí)或模塊級(jí),這樣就不用每次執(zhí)行一個(gè)操作時(shí)都去創(chuàng)建這個(gè)對(duì)象。
屬性:
◆ConnectionString屬性:連接數(shù)據(jù)源的字符串,包含了各種所需信息。如指定與1個(gè)ODBC數(shù)據(jù)源(DSN)為mine的連接,連接字符串可寫(xiě)為:
- Dim cn as ADODB.connection
- Set cn=New ADODB.connection
- cn.ConnectionString="DSN=mine;UID=an;PWD=pwd"
如果不使用ODBC數(shù)據(jù)源,則連接字符串需要按以下方式設(shè)置:
- cn.ConnectionString="driver={SQL Server};server=mm;uid=sa;pwd=pwd;" & "Database=mine"
上面這個(gè)是連接到遠(yuǎn)程SQL Server的連接串,即依次說(shuō)明OLE DB驅(qū)動(dòng),服務(wù)器名,用戶名和密碼及數(shù)據(jù)庫(kù)名稱。如:
- cn.ConnectionString=”driver={SQL Server};server=www.ndlxn.com;uid=ndlxn;pwd=848484;Database=pubs”
ConnectionString 用多項(xiàng)“設(shè)置項(xiàng)=值”的方式來(lái)設(shè)定與數(shù)據(jù)源的連接,每個(gè)項(xiàng)之間用分號(hào)隔開(kāi)。對(duì)于連接字符串的寫(xiě)法,精確固定的語(yǔ)法是沒(méi)有的。因?yàn)椴煌愋蛿?shù)據(jù)庫(kù),有各自的設(shè)置項(xiàng)。一個(gè)技巧是先在窗體上放一個(gè)Adodc控件,然后利用其ConnectionString設(shè)置時(shí)的對(duì)話框來(lái)建立好字串,再粘貼到代碼中,最后將 Adodc控件刪除。不要以為這是很笨的方法哦,許多高手也采用它哩。
◆ConnectionTimeout屬性:設(shè)置連接時(shí)的最長(zhǎng)等待時(shí)間,缺省為15秒,超時(shí)還未連接成功的話,中止連接,并返回出錯(cuò)信息。
◆Mode屬性:指定了該connection對(duì)象的讀寫(xiě)權(quán)限,該屬性值為枚舉變量ConnectionModeEnum中的一個(gè),有adModeRead、adModeReadWrite等。到對(duì)象瀏覽器中去找。
◆CursorLocation 屬性:選擇不同的游標(biāo)位置,只能在建立連接之前設(shè)置該屬性,并建立連接才有效,對(duì)于1已經(jīng)建立的連接,設(shè)置該屬性對(duì)連接不會(huì)產(chǎn)生影響。該屬性有以下常量:adUseNone——不使用游標(biāo)服務(wù);adUseClient——使用客戶端游標(biāo);adUseServer——使用服務(wù)端游標(biāo)。
◆DefaultDatabase屬性:該屬性為connection對(duì)象指定1個(gè)缺省的數(shù)據(jù)庫(kù)。
◆State屬性:查看一個(gè)connection對(duì)象當(dāng)前狀態(tài)是已經(jīng)建立還是關(guān)閉。只讀。
◆Version屬性:返回ADO的版本號(hào)。
◆Attributes屬性:設(shè)置事務(wù)的處理方式,可選值A(chǔ)dXactCommitRetaining通過(guò)自動(dòng)調(diào)用 CommitTrans 啟動(dòng)新事務(wù)?;駻dXactAbortRetaining通過(guò)自動(dòng)調(diào)用 RollbackTrans 啟動(dòng)新事務(wù) 。
◆CommandTimrout屬性:終止操作數(shù)據(jù)源的命令并返回一個(gè)錯(cuò)誤的等待時(shí)間。
◆Provider屬性:返回連接的數(shù)據(jù)源(即數(shù)據(jù)提供者)的名字。
◆Errors屬性:Error對(duì)象實(shí)際是一個(gè)與Connection平行的對(duì)象,也有一些如Description和Number等屬性,但它的集合包含在Connection對(duì)象下,其中包含了全部錯(cuò)誤對(duì)象,需要先聲明一個(gè)ADODB.Error對(duì)象,然后用Set進(jìn)行賦值,如
- Dim cnerr As ADODB.Error Set cnerr = DataEnvironment1.Connection1.Errors.Item(0)。