أهم أقسام المدونة

الصفحات

الجمعة، 24 مارس 2017

فئة قارئ البيانات DbDataReader Class


 فئة قارئ البيانات 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.. للتنزيل:

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

إرسال تعليق

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