The DataSourceMode property of the SqlDataSource control determines how the extracted data is maintained.
The default value of the DataSourceMode property is DataSet, which means that the result set extracted from the database is stored in a DataSet object in the server memory. If you use SqlDataSource as the data source for controls such as GridView, and you want to sort in the GridView control, For processing such as filtering and paging, the DataSourceMode property of SqlDataSource must be set to DataSet.
However, on the other hand, if the data extracted by SqlDataSource is only used as options for controls such as DropDownList and ListBox, without sorting, filtering, paging, etc., then the DataSourceMode property of SqlDataSource should be set to DataReader, so that Reduce resource consumption. After all, using a DataSet at this time is simply killing a chicken with a knife.
Once you set the DataSourceMode property to DataReader, the data will be retrieved through an IDataReader object (that is, a forward and read-only data pointer), and the result set will not be stored in the server's memory.
If you have a clear understanding of the characteristics and differences between the data set model and the data command model, I believe you should be able to know when to use DataSet and when to use DataReader.
http://www.cnblogs.com/liminzhang/archive/2006/12/18/595332.html