فئة قارئ البيانات DbDataReader
Class
هذه الفئة أساسية مجردة تجب وراثتها، وهي موجودة في النطاق System.Data.Common.
وتمثل
هذه الفئة الواجهة IDataReader، ما يعني أنها تمثل أيضا الواجهتين IDataRecord و IDisposable..
كما أنها تمثل أيضا واجهة القابلية للعد IEnumerable، ما يعني أنها تمتلك الوسيلة GetEnumerator التي تعيد عدادا يمر عبر سجلات النتيجة واحدا
بعد الآخر، مع ملاحظة أن كل عنصر في هذا العداد هو من نوع الفئة DbDataRecord.. لهذا تستطيع المرور عبر سجلات قارئ البيانات باستخدام الوسيلة Read كما شرحنا سابقا، أو باستخدام حلقة التكرار For Each على الصيغة التالية:
For Each R As DbDataRecord In Dr
MsgBox(R(0).ToString( ))
MsgBox(R(1).ToString( ))
Next
هذا
الكود سيعرض محتويات أول وثاني حقل في كل سجل من سجلات قارئ البيانات، بافتراض أن
قارئ البيانات اسمه Dr
وأن النتيجة بها حقلان أو أكثر.
وإضافة
إلى ما ترثه من خصائص، تمتلك الفئة DbDataReader الخاصيتين الجديدتين التاليتين:
به صفوف HasRows:
تعيد True إذا كان قارئ البيانات يتعامل مع نتيجة بها صفوف.
عدد الحقول المرئية VisibleFieldCount:
تعيد عدد الأعمدة غير الخفية في قارئ البيانات.
كما
تمتلك هذه الفئة الوسائل الجديدة التالية:
معرفة نوع الحقل طبقا للمزود GetProviderSpecificFieldType:
أرسل إلى هذه الوسيلة رقم العمود، لتعيد إليك كائن
النوع Type الذي يمثل نوع بياناته.. هذا النوع لن يكون من أنواع إطار العمل
الأساسية، بل سيكون من الأنواع الخاصة بمزود البيانات.. على سبيل المثال، لو كنت
تتعامل مع مزود سيكويل سيرفر، وكان العمود يحتوي على نصوص، فإن هذه الوسيلة ستعيد
كائنا يمثل نوع الفئة SqlString
وليس الفئة String.
قراءة القيمة طبقا للمزود GetProviderSpecificValue:
أرسل إلى هذه الوسيلة رقم العمود، لتعيد إليك
كائنا Object يحمل قيمته.. لاحظ أن هذه القيمة ستكون من الأنواع الخاصة بمزود
البيانات، لهذا سيسبب المثال التالي خطأ (بافتراض أن العمود رقم صفر عمود نصي):
Dim Name As String =
Dr.GetProviderSpecificValue(0)
MsgBox(Name)
والصواب أن تستخدم الكود التالي:
Dim Name As SqlString =
Dr.GetProviderSpecificValue(0)
MsgBox(Name.Value)
قراءة القيم طبقا للمزود GetProviderSpecificValues:
أرسل إلى هذه الوسيلة مصفوفة كائنات Object
Array، لتملأها لك ببيانات الصف
الحالي في قارئ البيانات.. وتعيد هذه الوسيلة عدد الخانات التي تم ملؤها في
المصفوفة.
والفئات التالية ترث الفئة DbDataReader:
1- DataTableReader
Class
2- OdbcDataReader
Class
3- OleDbDataReader
Class
4- SqlDataReader
Class
5- OracleDataReader
Class
وسنكتفي
هنا بالتعرف على الفئة SqlDataReader،
وسنتعرف في فصل لاحق على الفئة DataTableReader.
من
كتاب: من الصفر إلى الاحتراف برمجة قواعد البيانات في فيجوال بيزيك دوت نت ADO .NET.. للتنزيل:
ليست هناك تعليقات:
إرسال تعليق
ملحوظة: يمكن لأعضاء المدونة فقط إرسال تعليق.