أحدث الفئة DataTable
العمود تغير ColumnChanged:
ينطلق بعد أن تتغيّر
إحدى القيم في أحد أعمدة الجدول.. والمعامل الثاني e
لهذا الحدث من النوع DataColumnChangeEventArgs، وهو يمتلك الخصائص التالية:
Column
|
تعيد كائن العمود DataColumn
الذي حدث به التغيير.
|
Row
|
تعيد كائن الصفّ DataRow، الذي توجد به
الخانة التي تغيرت.
|
ProposedValue
|
تقرأ أو تغير القيمة المقترحة (التي تغيرت).. هذا يتيح
لك ـ لو أردت ـ تعديل القيمة التي تغيرت.
|
العمود يتغير ColumnChanging:
مماثل للحدث السابق،
ولكنه ينطلق عند محاولة إجراء التغيير في أحد أعمدة الجدول (أي قبل حدوث التغيير
بالفعل).. ويمكنك استخدام الكود التالي لإلغاء تغيير قيمة الخانة:
e.ProposedValue
= e.Row[e.Column];
لكن عليك استخدام هذه
الجملة داخل شرط، فلو استخدمتها هكذا بمفردها فستمنع المستخدم من تغيير أي خانة في
أي عمود في الجدول.. لهذا فالعملي أن تستخدمها لمنع بعض القيم الخاطئة، مثل ترك
عمود اسم المؤلف فارغا لأن هذا غير مقبول في قاعدة البيانات.. وستجد هذا الكود في
الفئة الجزئية لجدول المؤلفين في مجموعة البيانات محددة النوع في المشروع TableAdapter:
if (e.Column
== AuthorColumn && e.ProposedValue == "")
e.ProposedValue = e.Row[e.Column];
ويمكنك
بنفس الطريقة، إضافة أي شروط أخرى للتأكد من صلاحية القيم التي يدخلها المستخدم في
باقي الأعمدة.
الصف تغير RowChanged:
ينطلق بعد أن تتغيّر
إحدى القيم في أحد سجلات الجدول.. والمعامل الثاني e
لهذا الحدث من النوع DataRowChangeEventArgs، وهو يمتلك الخاصيتين التاليتين:
Row
|
تعيد كائن الصفّ DataRow، الذي توجد به
الخانة التابعة للعمود الذي حدث به التغيير.
|
Action
|
تخبرك بنوع التغيير الذي حدث للصفّ، وهي تعيد إحدى قيم
المرقم DataRowAction التالية:
Add: تمت إضافة الصف.
Delete: تم حذف الصف.
Change: يتم تغيير إحدى قيم الصف.
ChangeOriginal: تم تغيير النسخة الأصلية Original Version من السجل.
ChangeCurrentAndOriginal: تم تغيير النسخة الأصلية Original Version والنسخة الحالية Current Version
من السجل.
Commit: تم نقل التغييرات التي حدثت
على تعاملات الصف Transactions إلى قاعدة البيانات نهائيا.
Rollback: تم التراجع عن التغييرات التي
حدثت على تعاملات الصف.
Nothing: لم يحدث أي تغيير على الصف.
|
الصف يتغير RowChanging:
مماثل للحدث السابق،
ولكنّه ينطلق عند محاولة إجراء التغيير في أحد سجلات الجدول (قبل حدوث التغيير).
صف جديد للجدول TableNewRow:
ينطلق بعد استدعاء الوسيلة NewRow التي تعيد سجلا جديدا من سجلات الجدول.. والمعامل الثاني e لهذا الحدث من النوع DataTableNewRowEventArgs، وهو يمتلك الخاصية Row التي تعيد كائن الصف DataRow الذي يمثل الصف الجديد الذي تم إنشاؤه.. هذا يتيح لك وضع أية قيم
افتراضية تريها في خانات الصف الجديد.
تم حذف الصف RowDeleted:
ينطلق بعد حذف أحد
سجلات الجدول.. والمعامل الثاني e لهذا الحدث من النوع DataRowChangeEventArgs وقد تعرفنا عليه سابقا.
لاحظ أن هذا الحدث ينطلق والصف ما زال موجودا
فعلا في مجموعة صفوف الجدول لكن حالته تكون DELETED، وهو ما سيسبب خطأ في البرنامج لو حاولت إضافة الصف مرة أخرى إلى
الجدول!!
تم محو الجدول TableCleared:
ينطلق مباشرة بعد نجاح
الوسيلة Clear
في محو كل سجلات الجدول، وقبل العودة لتنفيذ باقي الكود الذي استدعى الوسيلة Clear.. لاحظ أن هذا الحدث لن ينطلق إذا حدثت أية أخطاء أثناء حذف سجلات
الجدول.
والمعامل الثاني e لهذا الحدث من النوع DataTableClearEventArgs، وهو يمتلك الخصائص التالية:
Table
|
تعيد
كائن الجدول DataTable
الذي يتم محو سجلاته.
|
TableName
|
تعيد
اسم الجدول.
|
TableNamespace
|
تعيد
نطاق اسم الجدول.
|
يتم محو الجدول TableClearing:
مماثل للحدث السابق،
ولكنه ينطلق عند محاولة محو سجلات الجدول
(بعد استدعاء الوسيلة Clear لكن قبل تنفيذها).. هذا الحدث ينطلق دائما، حتى لو كان الجدول فارغا من السجلات فعلا.
(بعد استدعاء الوسيلة Clear لكن قبل تنفيذها).. هذا الحدث ينطلق دائما، حتى لو كان الجدول فارغا من السجلات فعلا.
من كتاب من الصفر إلى الاحتراف: برمجة قواعد البيانات
بتقنية ADO.NET
ليست هناك تعليقات:
إرسال تعليق
ملحوظة: يمكن لأعضاء المدونة فقط إرسال تعليق.