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