المتابعون للمدونة

الجمعة، 1 فبراير 2019

DataTableReader Class


فئة قارئ جدول البيانات DataTableReader Class 

هذه الفئة ترث فئة قارئ البيانات الأم DbDataReader Class، وهي تشبه قارئ البيانات العادي في طريقة عملها، لكنها لا تستخدم كائن أمر للحصول على السجلات من قاعدة البيانات، فهي تقرأ السجلات من جداول مجموعة البيانات مباشرة.

ولإنشاء قارئ بيانات يقرأ سجلات أحد الجداول، عليك باستخدام الوسيلة CreateDataReader الخاصة بهذا الجدول كالتالي:
var Tr = Ds.Tables["Authors"].CreateDataReader( );
while (Tr.Read( )) {
     MessageBox.Show(Tr["ID"].ToString( ));
     MessageBox.Show(Tr["Author"].ToString( ));
}
ولإنشاء قارئ بيانات يقرأ سجلات كل الجداول، عليك باستخدام الوسيلة CreateDataReader الخاصة بمجموعة البيانات DataSet كالتالي:
DataTableReader Tr = Ds.CreateDataReader( );
do {
   while (Tr.Read( )) {
          string RowTxt = "";
          for (var I = 0; I < Tr.FieldCount; I++)
                  RowTxt += Tr.GetName(I) + " = "
                         + Tr[I].ToString( ) + "\r\n";
            MessageBox.Show(RowTxt);
   }
} while (Tr.NextResult( ));
لاحظ أننا لم نستخدم أسماء الأعمدة عند قراءة خانات كل سجل، وذلك لأن السجلات ستختلف من جدول إلى آخر في عدد الأعمدة وأسمائها.. وبدلا من هذا استخدمنا الخاصية FieldCount لإنشاء حلقة تكرار تمر عبر كل الأعمدة، لقراءة كل خانة باستخدام رقم العمود بدلا من اسمه.
ويمكنك تجربة هذا الكود في المشروع DataTableReaderSample.
ولحدث إنشاء الفئة DataTableReader الصيغتان التاليتين:
الأولى تستقبل كائن الجدول DataTable الذي ستقرأ سجلاته.
والثانية تستقبل مصفوفة جداول DataTable Array لتقرأ سجلاتها.
ولا تمتلك هذه الفئة أية خصائص أو وسائل جديدة غير ما ترثه من الفئة الأم.

من كتاب من الصفر إلى الاحتراف: برمجة قواعد البيانات بتقنية ADO.NET
 

ليست هناك تعليقات:

إرسال تعليق

ملحوظة: يمكن لأعضاء المدونة فقط إرسال تعليق.

صفحة الشاعر