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