全面攻略ADO.NET結(jié)構
ADO.NET還是比較常用的,于是我研究了一下ADO.NET結(jié)構,在這里拿出來和大家分享一下,希望對大家有用。ADO.NET結(jié)構用于訪問和操作數(shù)據(jù)的兩個主要組件是 .NET Framework 數(shù)據(jù)提供程序和 DataSet。
#T#.NET Framework 數(shù)據(jù)提供程序是專門為數(shù)據(jù)操作以及快速、只進、只讀訪問數(shù)據(jù)而設計的組件。Connection 對象提供到數(shù)據(jù)源的連接。使用 Command 對象可以訪問用于返回數(shù)據(jù)、修改數(shù)據(jù)、運行存儲過程以及發(fā)送或檢索參數(shù)信息的數(shù)據(jù)庫命令。DataReader 可從數(shù)據(jù)源提供高性能的數(shù)據(jù)流。***,DataAdapter 在 DataSet 對象和數(shù)據(jù)源之間起到橋梁作用。DataAdapter 使用 Command 對象在數(shù)據(jù)源中執(zhí)行 SQL 命令以向 DataSet 中加載數(shù)據(jù),并將對 DataSet 中數(shù)據(jù)的更改協(xié)調(diào)回數(shù)據(jù)源。有關更多信息,請參見 .NET Framework 數(shù)據(jù)提供程序 (ADO.NET)和在 ADO.NET 中檢索和修改數(shù)據(jù)。
ADO.NET DataSet 是專門為獨立于任何數(shù)據(jù)源的數(shù)據(jù)訪問而設計的。因此,它可以用于多種不同的數(shù)據(jù)源,用于 XML 數(shù)據(jù),或用于管理應用程序本地的數(shù)據(jù)。DataSet 包含一個或多個 DataTable 對象的集合,這些對象由數(shù)據(jù)行和數(shù)據(jù)列以及有關 DataTable 對象中數(shù)據(jù)的主鍵、外鍵、約束和關系信息組成。有關更多信息,請參見 DataSet、DataTable 和 DataView (ADO.NET)。
下圖闡釋了 .NET Framework 數(shù)據(jù)提供程序和 DataSet 之間的關系。
ADO.NET結(jié)構
在決定應用程序應使用 DataReader(請參見使用 DataReader 檢索數(shù)據(jù) (ADO.NET))還是應使用 DataSet(請參見DataSet、DataTable 和 DataView (ADO.NET))時,應考慮應用程序所需的功能類型。使用 DataSet 可執(zhí)行以下操作:
◆在應用程序中將數(shù)據(jù)緩存在本地,以便可以對數(shù)據(jù)進行處理。如果只需要讀取查詢結(jié)果,則 DataReader 是更好的選擇。
◆在層間或從 XML Web 服務對數(shù)據(jù)進行遠程處理。
◆與數(shù)據(jù)進行動態(tài)交互,例如綁定到 Windows 窗體控件或組合并關聯(lián)來自多個源的數(shù)據(jù)。
◆對數(shù)據(jù)執(zhí)行大量的處理,而不需要與數(shù)據(jù)源保持打開的連接,從而將該連接釋放給其他客戶端使用。
如果不需要 DataSet 所提供的功能,則可以通過使用 DataReader 以只進、只讀方式返回數(shù)據(jù),從而提高應用程序的性能。雖然 DataAdapter 使用 DataReader 來填充 DataSet 的內(nèi)容(請參見從 DataAdapter 填充數(shù)據(jù)集 (ADO.NET)),但使用 DataReader 可以提升性能,因為這樣可以節(jié)省 DataSet 所使用的內(nèi)存,并將省去創(chuàng)建 DataSet 并填充其內(nèi)容所需的處理。