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

الصفحات

السبت، 6 يناير 2018

استخدام موصل الجدول في الكود


استخدام موصل الجدول في الكود:
لاستخدام موصل الجدول TableAdapter يجب أن تعرف نسخة منه.. مثال:
Dim TaAuhtors As New _
        DsAuthorsBooksTableAdapters.AuthorsTableAdapter
MsgBox(TaAuhtors.GetAuthorBooksCount("توفيق الحكيم"))
ولاستخدام مدير الموصلات TableAdapterManager في الكود، يجب أن نعرف نسخة منه، وتضع نسخة من كل موصل جدول في الخاصية المناظرة له في مدير الموصلات، كالتالي:
Dim TaBooks As New _
        DsAuthorsBooksTableAdapters.BooksTableAdapter
Dim TaM As New _
        DsAuthorsBooksTableAdapters.TableAdapterManager
TaM.AuthorsTableAdapter = TaAuhtors
TaM.BooksTableAdapter = TaBooks
لكن الأسهل هو أن تتعامل مع هذه الكائنات بشكل مرئي، حيث تقدم لك دوت نت هذه التسهيلات:
1- عند سحب مجموعة البيانات من صندوق الأدوات وإسقاطها على النموذج،  ستظهر نافذة تسألك إن كنت تريد إضافة مجموعة بيانات عادية أم محددة النوع، حيث تستطيع اختيار النوع X.DsAuthorsBooks من القائمة المنسدلة، حيث X هو اسم المشروع (وهو TableAdapter في حالتنا هذه).
2- يمكنك التعامل مع عناصر مجموعة البيانات محددة النوع من صندوق الأدوات مباشرة، فهي يظهر في صندوق الأدوات تحت شريط جديد اسمه X Components، حيث X هو اسم المشروع.. وإذا لم تجد هذا الشريط، فأغلق صندوق الأدوات ثم أعد فتحه ليتم إنعاشه.. وستجد تحت شريط المشروع TableAdapter العناصر التالية:
أ. مجموعة البيانات محددة النوع DsAuthorsBooks.
ب. موصل جدول المؤلفين AuthorsTableAdapter.
ج. موصل جدول الكتب BooksTableAdapter.
د. موصل جدول الاستعلامات QueriesTableAdapter.
هـ. مدير موصلات الجداول TableAdapterManger.
هذا يتيح لك إضافة أي من هذه العناصر إلى النموذج، حيث ستظهر في صينية المكونات.. أضف نسخة من كل عنصر من هذه العناصر، وامنحها الأسماء التالية على الترتيب: Ds، TaAuthors، TaBooks، TaQueries، TaM.
3- اضغط بزر الفأرة الأيمن، مدير الموصلات TaM في صينية المكونات، ومن القائمة الموضعية اضغط الأمر Properties لعرض خصائصه في نافذة الخصائص.. من القائمة المنسدلة للخاصية AuthorsTableAdapter اختر TaAuthors، ومن من القائمة المنسدلة للخاصية BoosTableAdapter اختر TaBooks.. ويمكنك تغيير قيمة باقي الخصائص كما يناسبك.
4- اضغط بزر الفأرة الأيمن، أي موصل جدول في صينية المكونات، ومن القائمة الموضعية اضغط الأمر Add Query لإضافة استعلام جديد إلى موصل الجدول.. في هذه الحالة ستظهر نافذة مختصرة، تتيح لك تعريف الوسيلة FillBy فقط ولن يتم تعريف الوسيلة GetDataBy، كما هو موضح في الصورة:
 
 
ويمكنك أن تغير موصل الجدول الذي تتعامل معه من القائمة المنسدلة، ويمكنك أن تغير اسم وسيلة الملء بتحريرها في مربع النص (وسنستخدم هنا الاسم FillByPublisher)، كما يمكنك أن تكتب الاستعلام في مربع النص السفلي.. وإذا أردت تعديل استعلام موجود سابقا، فاضغط الاختيار Existing Query Name واختر اسم الاستعلام من القائمة المنسدلة لعرضه في مربع النص السفلي.. في حالتنا هذه، سنستخدم استعلاما جديدا للحصول على الكتب التي نشرها ناشر معين.
اضغط Ok لإغلاق هذه النافذة.. سيؤدي هذا إضافة الوسيلة FillByPublisher إلى موصل بيانات الكتب. 

وإذا أردت إضافة الوسيلة GetDataByPublisher، فاتبع الخطوات التالية:
- ضغط موصل الجدول بزر الفأرة الأيمن، ومن القائمة الموضعية اضغط الأمر Edit Query In DataSet لعرض مخطط مجموعة البيانات.
- اضغط الاستعلام FillByPublisher في موصل جدول الكتب بزر الفأرة الأيمن، ومن القائمة الموضعية اضغط الأمر Configure لعرض نافذة تحرير الاستعلام.
- اضغط Next لعرض نافذة وسائل الاستعلام، وضع علامة الاختيار أمام Return a DataTable، وغير اسم الوسيلة إلى GetDataByPublisher واضغط Finish. 

أيضا، سيضاف شريط أدوات ToolStrip إلى النموذج، عليه لافتة تحمل الاسم Publisher (وهو اسم المعامل المراد إدخاله لتنفيذ الاستعلام) ومربع نص ليكتب فيه المستخدم اسم الناشر، وزرا يحمل اسم الوسيلة FillByPublisher، وعند الضغط عليه سيتم ملء مجموعة البيانات بكتب هذا الناشر، فالكود الذي يفعل هذا تم إنتاجه آليا في حدث ضغط الزر.. لكن سيتبقى عليك أن تعرض محتويات مجموعة البيانات للمستخدم، وقد فعلنا هذا بعرضها في جدول عرض كما هو موضح في الصورة:
 


وتستطيع تغيير عنوان اللافتة والزر، وعرض رف الأدوات من اليمين إلى اليسار 

والمشروع TableAdapter يريك أمثلة على استخدام موصلات الجداول، مع استخدام مدير الموصلات في حدث ضغط الزر "حفظ التغييرات" لإرسال التغييرات التي أجراها المستخدم على السجلات إلى قاعدة البيانات. 

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

 

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

إرسال تعليق

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