تحدد الخاصية 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