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