處理ADO.NET實(shí)例介紹說(shuō)明
如果希望將事務(wù)處理與一些外部系統(tǒng)結(jié)合起來(lái)(比如在數(shù)據(jù)庫(kù)更新時(shí)同時(shí)進(jìn)行了WEB更新,如果WEB更新失敗希望回滾事務(wù)時(shí)),對(duì)于ADO.NET實(shí)例選擇客戶端編寫事務(wù)處理(用ADO編寫)。。
下面進(jìn)行說(shuō)明ADO.NET實(shí)例提供兩個(gè)對(duì)象用于檢索關(guān)系型數(shù)據(jù)并把它存儲(chǔ)在內(nèi)存中,分別是DataSet和DataReader。DataSet提供內(nèi)存中關(guān)系數(shù)據(jù)的表現(xiàn)--包括表和次序、約束等表間的關(guān)系的完整數(shù)據(jù)集合。
掌握ADO.NET實(shí)例DataSet使用方法必須掌握ADO.NET另外一個(gè)核心常用成員--數(shù)據(jù)提供者(Data Provider)。數(shù)據(jù)提供者(也稱為托管提供者M(jìn)anaged Provider)是一個(gè)類集合,在.Net FrameWork SDK 1.0中數(shù)據(jù)提供者分為二種:The SQL Server ADO.NET實(shí)例.NET Data Provider和The OLE DB .NET Data Provider。而到了.Net FrameWork SDK 1.1時(shí),ADO.NET中又增加了The ODBC .NET Data Provider和 The Oracle .NET Data Provider二個(gè)數(shù)據(jù)提供者。 #t#
The SQL Server .NET Data Provider的操作數(shù)據(jù)庫(kù)對(duì)象只限于Sql Server 7.0及以上版本,Oracle .NET Data Provider的操作數(shù)據(jù)庫(kù)對(duì)象只限于Oracle 8.1.7及以上版本。而The OLE DB .NET Data Provider和The ODBC .NET Data Provider可操作的數(shù)據(jù)庫(kù)類型就相對(duì)多了許多,只要它們?cè)诒镜胤謩e提供Ole Db提供程序和ODADO.NET實(shí)例BC提供程序。 
在這些數(shù)據(jù)提供者中都有一個(gè)DataAdapter類,如:OLE DB .ADO.NET實(shí)例NET Framework 數(shù)據(jù)提供者中是 OleDbDataAdapter類,The SQL Server .NET Framework 數(shù)據(jù)提供者中是SqlDataAdapter類,The ODBC .NET Framework 數(shù)據(jù)提供者中是OdbcDataAdapter類。通過(guò)這些DataAdapter就能夠?qū)崿F(xiàn)從數(shù)據(jù)庫(kù)中檢索數(shù)據(jù)并填充 DataSet 中的表。 
ADO最大的特色就在于支持在斷開連接的情況下對(duì)里的內(nèi)容進(jìn)行操作,這樣可以大大的節(jié)約過(guò)多連接帶來(lái)的消耗,前面的那一篇文章中已經(jīng)給了一個(gè)具體的例子說(shuō)明ADO.NET的這種特性。我們可以在從數(shù)據(jù)庫(kù)里獲得數(shù)據(jù)的時(shí)候打開連接。
在得到數(shù)據(jù)之后就斷開連接,對(duì)dataset里面的數(shù)據(jù)進(jìn)行操作,然后在把dataset里的內(nèi)容更新到數(shù)據(jù)庫(kù)里面的時(shí)候再打開連接。對(duì)于dataReader則必須一直保持連接。
使用這種特性的時(shí)候有幾點(diǎn)要注意一下: 
(1)更改連接屬性的時(shí)候必須斷開連接 
(2)切換的時(shí)候選擇conn.changeDatabase(dbName),減少斷開連接與新建連接往返帶來(lái)的消耗 
ADO同時(shí)支持自帶連接池。在一個(gè)連接關(guān)閉之后,連接會(huì)在池中保持一段時(shí)間,然后才實(shí)際的關(guān)閉,如果在超時(shí)之前,有人請(qǐng)求建立相同的連接,就將打開的連接分配給請(qǐng)求者,這對(duì)于經(jīng)常進(jìn)行打開和斷開的連接可以減少很多的消耗。ADO.NET實(shí)例不過(guò)在 2000中采用集成安全性的連接無(wú)法入池。 















 
 
 
 
 
 
 