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