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

الصفحات

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

فئة قارئ بيانات سيكويل SqlDataReader Class


 فئة قارئ بيانات سيكويل SqlDataReader Class 

 هذه الفئة ترث الفئة DbDataReader بكل وسائلها وخصائصها، وهي تمكنك من قراءة البيانات القادمة من خادم سيكويل.
وليس لهذه الفئة حدث إنشاء Constructor، ولكنك تستطيع الحصول على نسخة منها باستدعاء الوسيلة SqlCommand.ExecuteReader.
ولا تمتلك هذه الفئة أية خصائص جديدة غير ما ترثه من الفئة الأم، ولكنها تمتلك العديد من الوسائل الجديدة، وهي تقوم بقراءة البيانات من العمود الذي أرسلت رقمه إليها كمعامل، وتحولها إلى نوع البيانات المطلوب.. ولأسماء هذه الوسائل الصيغة العامة GetX، حيث X هو اسم نوع البيانات الذي سيتم التحويل إليه.. وهذه الوسائل هي:

GetSqlBinary
GetSqlBoolean
GetSqlByte
GetSqlBytes
GetSqlChars
GetSqlDateTime
GetSqlDecimal
GetSqlDouble
GetSqlGuid
GetSqlInt16
GetSqlInt32
GetSqlInt64
GetSqlMoney
GetSqlSingle
GetSqlString
GetSqlValue
GetSqlValues
GetSqlXml
GetTimeSpan

على سبيل المثال، الوسيلة GetSqlBinary تعيد كائنا من النوع SqlBinary، وهي مناسبة لقراءة الأعمدة التي تحتوي بيانات من النوع image أو varbinary(MAX)، لهذا استخدماها في الزر GetSqlBinary في المشروع ReadLargeData، لقراءة صورة أول ناشر من العمود Logo2 (ويمكنك استخدامها أيضا للقراءة من العمود Logo)، وحفظها في ملف.. لاحظ أن عملية القراءة ستتم هنا بطريقة مباشرة (غير تتابعية)، وأن حجم الصورة سيؤثر على كفاءة هذه العملية، فلو كانت ضخمة فسيأخذ نقلها وقتا طويلا، وسيتم تحميلها في الذاكرة كاملة قبل حفظها في الملف!

أما الوسيلة GetSqlBytes فستجد مثالا على استخدامها في الزر SqlFileStream.Read في المشروع ReadLargeData.. في هذا الكود استخدمنا الوسيلة GetSqlBytes لقراءة مصفوفة محتوى التعاملات Transaction Context. 

بهذا نكون قد أكملنا تعرفنا على قارئ البيانات.. وللتدريب على ما تعلمناه حتى الآن، يمكنك فحص المشروع AuthorBooks_Reader.. في هذا المشروع نسمح للمستخدم بكتابة اسم المؤلف في مربع نص، وعندما يضغط الزر "عرض الكتب"، نستخدم قارئ البيانات لكتابة كتب هذا المؤلف في مربع نص متعدد الأسطر.

لا تنسَ نسخ قاعدة بيانات الكتب من القرص الضوئي إلى المحرك C: والتأكد من أنها ليست للقراءة فقط، لكي يعمل المثال بشكل صحيح. 

ملحوظة:
لاستخدام الإجراء المخزن GetAuthorBooks للحصول على كتب المؤلف الذي ترسل إلى هذا الإجراء اسمه كمعامل، أجر التعديلات التالية على المشروع AuthorBooks_Reader:
-  ضع في الخاصيّة CommandText الخاصة بكائن الأمر اسم الإجراء المخزّن GetAuthorBooks.
-  ضع في الخاصية CommandType الخاصة بكائن الأمر القيمة StoredProcedure.
-  لا تُجرِ أية تعديلات على المعامل @Author الذي أضفناه إلى مجموعة معاملات كائن الأمر.
هذا فقط هو كل المطلوب، وسيعمل البرنامج بشكل سليم، وسيعطي نفس النتائج التي كان يعطيها سابقا، مع اختلاف واحد: أنه يستخدم الإجراء المخزن بدلا من جملة SQL.
والمشروع AuthorBooks_Reader2 يحتوي بالفعل على هذه التعديلات.

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

 

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

إرسال تعليق

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