ASP.NET 2.0–善用DataSourceMode属性
SqlDataSource控件的DataSourceMode属性决定所提取的数据要如何维护。
DataSourceMode属性的默认值是DataSet,此表示从数据库提取而来的结果集会储存在服务器内存内的一个DataSet对象中,如果您使用SqlDataSource作为GridView等控件的数据来源,并且要在GridView控件中进行排序、筛选与分页等处理,则SqlDataSource的DataSourceMode属性一定要设定成DataSet。
然而在另外一方面,如果SqlDataSource所提取的数据仅仅是要作为DropDownList与ListBox等控件的选项,而不需要进行排序、筛选与分页等处理,则SqlDataSource的DataSourceMode属性应该要设定成DataReader,如此才能降低资源的耗用。毕竟在这种时候使用数据集(DataSet)根本就是杀鸡用牛刀。
一旦您将DataSourceMode属性设定成DataReader,数据会通过一个IDataReader对象(亦即顺向且只读的数据指针)来提取,结果集将不会储存在服务器的内存中。
如果您对数据集模型与数据命令模型的特色与差异有清楚的认识,相信应该可以知道何时该使用DataSet,而何时又该使用DataReader。