ASP.NET 2.0 – 善用DataSourceMode屬性
SqlDataSource控件的DataSourceMode屬性決定所提取的數(shù)據(jù)要如何維護。
DataSourceMode屬性的默認值是DataSet,此表示從數(shù)據(jù)庫提取而來的結(jié)果集會儲存在服務(wù)器內(nèi)存內(nèi)的一個DataSet對象中,如果您使用SqlDataSource作為GridView等控件的數(shù)據(jù)來源,并且要在GridView控件中進行排序、篩選與分頁等處理,則SqlDataSource的DataSourceMode屬性一定要設(shè)定成DataSet。
然而在另外一方面,如果SqlDataSource所提取的數(shù)據(jù)僅僅是要作為DropDownList與ListBox等控件的選項,而不需要進行排序、篩選與分頁等處理,則SqlDataSource的DataSourceMode屬性應(yīng)該要設(shè)定成DataReader,如此才能降低資源的耗用。畢竟在這種時候使用數(shù)據(jù)集(DataSet)根本就是殺雞用牛刀。
一旦您將DataSourceMode屬性設(shè)定成DataReader,數(shù)據(jù)會通過一個IDataReader對象(亦即順向且只讀的數(shù)據(jù)指針)來提取,結(jié)果集將不會儲存在服務(wù)器的內(nèi)存中。
如果您對數(shù)據(jù)集模型與數(shù)據(jù)命令模型的特色與差異有清楚的認識,相信應(yīng)該可以知道何時該使用DataSet,而何時又該使用DataReader。