Свойство DataSourceMode элемента управления SqlDataSource определяет, как сохраняются извлеченные данные.
Значением свойства DataSourceMode по умолчанию является DataSet, что означает, что набор результатов, извлеченный из базы данных, сохраняется в объекте DataSet в памяти сервера, если вы используете SqlDataSource в качестве источника данных для элементов управления, таких как GridView, и хотите выполнить сортировку. в элементе управления GridView. Для такой обработки, как фильтрация и разбиение по страницам, для свойства DataSourceMode объекта SqlDataSource должно быть установлено значение DataSet.
Однако, с другой стороны, если данные, извлеченные с помощью SqlDataSource, используются только в качестве параметров для таких элементов управления, как DropDownList и ListBox, без сортировки, фильтрации, разбиения на страницы и т. д., то для свойства DataSourceMode SqlDataSource должно быть установлено значение DataReader, чтобы Уменьшите потребление ресурсов. В конце концов, использовать DataSet в настоящее время — это просто зарезать курицу ножом.
После того как для свойства DataSourceMode установлено значение DataReader, данные будут извлекаться через объект IDataReader (то есть прямой указатель данных, доступный только для чтения), и результирующий набор не будет храниться в памяти сервера.
Если у вас есть четкое представление о характеристиках и различиях между моделью набора данных и моделью команд данных, я считаю, что вы сможете знать, когда использовать DataSet, а когда — DataReader.
http://www.cnblogs.com/liminzhang/archive/2006/12/18/595332.html