La propriété DataSourceMode du contrôle SqlDataSource détermine la façon dont les données extraites sont conservées.
La valeur par défaut de la propriété DataSourceMode est DataSet, ce qui signifie que l'ensemble de résultats extrait de la base de données est stocké dans un objet DataSet dans la mémoire du serveur si vous utilisez SqlDataSource comme source de données pour des contrôles tels que GridView et que vous souhaitez trier. dans le contrôle GridView, pour les traitements tels que le filtrage et la pagination, la propriété DataSourceMode de SqlDataSource doit être définie sur DataSet.
Cependant, d'un autre côté, si les données extraites par SqlDataSource sont uniquement utilisées comme options pour des contrôles tels que DropDownList et ListBox, sans tri, filtrage, pagination, etc., alors la propriété DataSourceMode de SqlDataSource doit être définie sur DataReader, de sorte que Réduisez la consommation de ressources. Après tout, utiliser un DataSet à ce stade revient simplement à tuer un poulet avec un couteau.
Une fois que vous avez défini la propriété DataSourceMode sur DataReader, les données seront récupérées via un objet IDataReader (c'est-à-dire un pointeur de données avant et en lecture seule) et l'ensemble de résultats ne sera pas stocké dans la mémoire du serveur.
Si vous comprenez clairement les caractéristiques et les différences entre le modèle d'ensemble de données et le modèle de commande de données, je pense que vous devriez être en mesure de savoir quand utiliser DataSet et quand utiliser DataReader.
http://www.cnblogs.com/liminzhang/archive/2006/12/18/595332.html