ADO.NET使用技巧大揭秘
經(jīng)過(guò)長(zhǎng)時(shí)間學(xué)習(xí)ADO.NET,于是和大家分享一下關(guān)于ADO.NET使用技巧的運(yùn)用,看完本文你肯定有不少收獲,希望本文能教會(huì)你更多東西。ADO.NET 提供以下兩個(gè)對(duì)象,用于檢索關(guān)系數(shù)據(jù)并將其存儲(chǔ)在內(nèi)存中:DataSet 和 DataReader。DataSet 提供一個(gè)內(nèi)存中數(shù)據(jù)的關(guān)系表示形式,一整套包括一些表在內(nèi)的數(shù)據(jù)(這些表包含數(shù)據(jù)、對(duì)數(shù)據(jù)進(jìn)行排序并約束數(shù)據(jù)),以及表之間的關(guān)系。DataReader 提供一個(gè)來(lái)自數(shù)據(jù)庫(kù)的快速、只進(jìn)、只讀數(shù)據(jù)流。
當(dāng)使用 DataSet 時(shí),經(jīng)常會(huì)利用 DataAdapter(也可能是 CommandBuilder)與數(shù)據(jù)源進(jìn)行交互。當(dāng)使用 DataSet 時(shí),也可以利用 DataView 對(duì) DataSet 中的數(shù)據(jù)應(yīng)用排序和篩選。也可以從 DataSet 繼承,創(chuàng)建強(qiáng)類(lèi)型 DataSet,用于將表、行和列作為強(qiáng)類(lèi)型對(duì)象屬性公開(kāi)。
下列主題包括的信息涉及:使用 DataSet 或 DataReader 的***時(shí)機(jī)、如何優(yōu)化訪問(wèn)它們所包含數(shù)據(jù)、以及如何優(yōu)化使用 DataAdapter(包括 CommandBuilder)和 DataView 的技巧。
ADO.NET使用技巧DataSet 與 DataReader
當(dāng)設(shè)計(jì)應(yīng)用程序時(shí),要考慮應(yīng)用程序所需功能的等級(jí),以確定使用 DataSet 或者是 DataReader。
要通過(guò)應(yīng)用程序執(zhí)行以下操作,就要使用 DataSet:
◆在結(jié)果的多個(gè)離散表之間進(jìn)行導(dǎo)航。
◆ 操作來(lái)自多個(gè)數(shù)據(jù)源(例如,來(lái)自多個(gè)數(shù)據(jù)庫(kù)、一個(gè) XML 文件和一個(gè)電子表格的混合數(shù)據(jù))的數(shù)據(jù)。
◆在各層之間交換數(shù)據(jù)或使用 XML Web 服務(wù)。與 DataReader 不同的是,DataSet 能傳遞給遠(yuǎn)程客戶端。
◆重用同樣的行組,以便通過(guò)緩存獲得性能改善(例如排序、搜索或篩選數(shù)據(jù))。
◆每行執(zhí)行大量處理。對(duì)使用 DataReader 返回的每一行進(jìn)行擴(kuò)展處理會(huì)延長(zhǎng)服務(wù)于 DataReader 的連接的必要時(shí)間,這影響了性能。
◆使用 XML 操作對(duì)數(shù)據(jù)進(jìn)行操作,例如可擴(kuò)展樣式表語(yǔ)言轉(zhuǎn)換(XSLT 轉(zhuǎn)換)或 XPath 查詢。
對(duì)于下列情況,要在應(yīng)用程序中使用 DataReader:
◆不需要緩存數(shù)據(jù)。
◆要處理的結(jié)果集太大,內(nèi)存中放不下。
◆一旦需要以只進(jìn)、只讀方式快速訪問(wèn)數(shù)據(jù)。
注填充 DataSet 時(shí),DataAdapter 使用 DataReader。因此,使用 DataAdapter 取代 DataSet 提升的性能表現(xiàn)為節(jié)省了 DataSet 占用內(nèi)存和填充 DataSet 需要的循環(huán)。一般來(lái)說(shuō),此性能提升只是象征性的,因此,設(shè)計(jì)決策應(yīng)以所需功能為基礎(chǔ),學(xué)會(huì)了我教你的ADO.NET使用技巧了嗎。
【編輯推薦】