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

الصفحات

الأربعاء، 6 ديسمبر 2017

إضافة استعلامات إلى موصل الجدول


إضافة استعلامات جديدة إلى موصل الجدول TableAdapter:
إلى الآن، لا يبدو أن موصل الجدول يقدم شيئا جديدا يميزه عن موصل البيانات العادي.. فالحقيقة أن مزية موصل الجدول الرئيسية، هي قدرتك على إضافة أي عدد تريده من الاستعلامات إليه، ما دامت تلتزم بأحد الشرطين التاليين:
1- أن تعيد سجلات لها نفس تركيب الجدول الذي يتعامل معه موصل الجدول.. ليس من المنطقي مثلا أن تضيف إلى موصل جدول المؤلفين، استعلاما يعيد سجلات الكتب.
2- أن تعيد قيمة منفردة Scalar Value.. يمكنك مثلا أن تضيف إلى موصل جدول المؤلفين استعلاما يعيد عدد المؤلفين، أو عدد كتب أحد المؤلفين.
ولإضافة استعلام جديد إلى موصل الجدول، اضغط اسم الموصل في نافذة المصمم بزر الفأرة الأيمن، ومن القائمة الموضعية اضغط الأمر Add Query.. سيؤدي هذا إلى بدء المعالج السحري لتهيئة استعلام موصل الجدول TableAdapter Query Configuration Wizard.. دعنا نستخدم هذا المعالج لإضافة استعلام إلى موصل جدول الكتب، يعيد كتب المؤلف الذي نريده:
- النافذة الأولى تسألك عن نوع الاستعلام الذي تريده (جملة SQL أم إجراء مخزن).. اختر Use SQL Statement واضغط Next.
- النافذة التالية تسألك عن نوع الاستعلام الذي تريده:

 


 
يمكنك الاختيار من بين الأنواع التالية:
أ. جملة استعلام تعيد صفوفا:
SELECT statement witch returns rows.
ب. جملة استعلام تعيد قيمة منفردة:
SELECT statement witch returns a single value.
ج. تحديث UPDATE.
ج. حذف DELETE.
هـ. إدراج INSERT.
اختر أول اختيار، واضغط Next.
- في النافذة التالية اكتب جملة الاستعلام التالية:
SELECT     Books.* 
FROM Books INNER JOIN Authors
ON Books.AuthorID = Authors.ID
AND Author = @Author
واضغط Next.
- النافذة التالية تتيح لك اختيار الوسائل التي ستضاف إلى موصل جدول الكتب لتنفيذ هذا الاستعلام.. ستجد وسيلتين هما:
أ. FillBy، وعليك تعديل اسمها إلى FillByAuthor، وهي تستقبل اسم المؤلف، وتملأ جدول الكتب في مجموعة البيانات بكتب هذا المؤلف.
ب. GetDataBy، وعليك تعديل اسمها إلى GetDataByAuthor، وهي تستقبل اسم المؤلف، وتعيد جدول كتب يحتوي على كتب هذا المؤلف.
اضغط Next لعرض نافذة الملخص، ثم اضغط Finish لإنهاء المعالج السحري.
سيؤدي هذا إلى ظهور اسمي الوسيلتين الجديدتين في مخطط موصل جدول الكتب.. هذا معناه أن تعريف هاتين الوسيلتين قد أضيف إلى فئة موصل الجدول، وسيكون لكل منهما معامل نصي يستقبل اسم المؤلف.. وعموما، يقوم موصل جدول الكتب بتعريف المعاملات المناسبة لنوع الحقل الذي تستعلم عنه في قاعدة البيانات.
لاحظ أنك لو استخدمت استعلاما يعيد نتائج غير مرغوبة، فسيعرض لك موصل الجدول رسالة تحذرك من أن نتيجة الاستعلام لا تناسب مخطط الجدول.. ولو أردت تصحيح الاستعلام فاضغط بزر الفأرة الأيمن، فوق الصف الذي يعرض اسمي الوسيلتين الجديتين في مخطط موصل الجدول، ومن القائمة الموضعية اضغط الأمر Configure.. سيعرض هذا النافذة التي أدخلت فيها الاستعلام، حيث يمكنك تصحيحه كما تريد وضغط الزر Finish.
ولحذف الاستعلام، حدده في مخطط موصل الجدول، واضغط Delete.
دعنا أيضا ننشئ استعلاما في موصل جدول الكتب يعيد لنا عدد كتب مؤلف معين.. دعنا نجرب طريقة أخرى هذه المرة.. من صندوق الأدوات اسحب العنصر Query  وأسقطه فوق موصل جدول المؤلفين.. سيؤدي هذا إلى إطلاق المعالج السحري، حيث يمكنك اتباع نفس الخطوات السابقة، لكن مع اختيار:
SELECT Statement that returns a single value
وفي نافذة الاستعلام اكتب:
SELECT COUNT(BOOK) FROM Authors, Books
WHERE AuthorID = Authors.ID AND Author = @Author
واضغط Next.. ستظهر لك نافذة تتيح لك تسمية الدالة التي تنفذ هذا الاستعلام.. سيكون لهذه الدالة الاسم الافتراضي ScalarQuery.. غير هذا الاسم إلى GetAuthorBooksCount واضغط Finish.. سيظهر اسم الدالة الجديدة في مخطط موصل الجدول كما في الصورة، كما ستضاف هذه الوسيلة إلى فئة موصل الجدول، حيث ستستقبل نصا يمثل اسم المؤلف، وتعيد عددا صحيحا يمثل عدد كتبه. 

ملحوظة:
عند إنشاء الاستعلام عن حقل يمكن تركه فارغا (مثل الحقل Phone في جدول الكتب)، يقوم موصل البيانات بتعريف معامل الوسيلة FillBy بحيث يكون قابلا للانعدام Nullable (مثلا: سيكون معامل الوسيلة FillByPhone من نوع النص المنعدم String?).. هذا يتيح لك إرسال القيمة Nothing إلى هذه الوسيلة لتعيد إليك السجلات التي ما زال فيها هذا الحقل فارغا.

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

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

إرسال تعليق

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