ASP.NET 2.0 - 選用 DataSet 或 DataReader

摘要:ASP.NET 2.0 - 選用 DataSet 或 DataReader

我們在之前的一篇文章提到「善用 DataSourceMode 屬性」http://blog.xuite.net/alwaysfuturevision/liminzhang/9378544),引發了不少迴響,大家開始思索應該在 Web Form 網頁中應該使用 DataSet DataReader 作為實質的資料來源。 

在此我們進一步於圖表 1 中列示出使用 DataReader DataSet 的優劣之處。在一般的狀況下,DataReader 的速度不僅比 DataSet 來得快,在 IIS 伺服器上所使用的記憶體也較少。我們的建議是,如果您的資料來源控制項只是用來填入控制項的清單成為其選項,亦或是您的資料繫結控制項並不需要提供排序或分頁功能的話,則應該使用 DataReader。反之,如果您的資料繫結控制項需要提供排序或分頁功能的話,則必須使用 DataSet 並承擔其各項負面效應。 

DataSourceMode屬性

優點

缺點

DataReader

較快速

不支援快取、分頁與動態排序。

DataSet

支援快取、分頁與動態排序

速度較慢

圖表1

註:本文所提當使用 DataReader 時不支援快取、分頁與動態排序,是指不能直接使用 GridView 等控制項內建的功能來直接完成這些作業。如果您要自己撰寫程式碼來進行額外的實作,當然是可以達成。

章立民研究室 2006/12/226