SqlDataSource控制項的DataSourceMode屬性決定所擷取的資料要如何維護。
DataSourceMode屬性的預設值是DataSet,此表示從資料庫擷取而來的結果集會儲存在伺服器記憶體內的一個DataSet物件中,如果您使用SqlDataSource作為GridView等控制項的資料來源,並且要在GridView控制項中進行排序、篩選與分頁等處理,則SqlDataSource的DataSourceMode屬性一定要設定成DataSet。
然而在另一方面,如果SqlDataSource所提取的資料只是要作為DropDownList與ListBox等控制項的選項,而不需要進行排序、篩選與分頁等處理,則SqlDataSource的DataSourceMode屬性應該要設定成DataReader,如此才能降低資源的耗用。畢竟在這種時候使用資料集(DataSet)根本就是殺雞用牛刀。
一旦您將DataSourceMode屬性設定成DataReader,資料會透過一個IDataReader物件(亦即順向且唯讀的資料指標)來提取,結果集將不會儲存在伺服器的記憶體中。
如果您對資料集模型與資料指令模型的特色與差異有清楚的認知,相信您應該知道何時該使用DataSet,而何時該使用DataReader。
http://www.cnblogs.com/liminzhang/archive/2006/12/18/595332.html