السلام عليكم إخواني الأعزاء ورحمة الله وبركاته
ما تفضل به الأخ أبو بكر سويدان هو عين المنطق في التعامل مع السجلات في قواعد البيانات، ولتلافي هذا الأمر يمكن إدراج حقل جديد في الجدول بعنوان Active مثلا ويكون نوع البيانات إما Boolean أو رقمي ونجعل القيمة الإفتراضيه (1) وعند حذف سجل ما يرتبط به سجلات أخرى فإنه سوف يحول القيمة من 1 إلى 0 ، ويكون ذلك من خلال استبدال جملة التنفيذية Delete بـ Update وبعد ذلك يتم استدعاء أو جلب البيانات عند الحدث Load للنموذج بإضافة شرط إلى جملة Select ويكون Where Active =1.
أما قاعدة بيانات SQL فيمكن استخدام Trigger Instead of Delete فإنها أيضا تؤدي نفس الغرض.
أما بالنسبة للكومبوبوكس فأنا مع رأي الأخ أبو بكر سويدان لأنه أعود وأكرر المنطق البرمجي الأدبيات البرمجية القواعد المبادئ سميها ما شئت يجب أن نراعيها.
للأسف لم تفتح قاعدة البيانات عندي ولكن لقد اطلعت على تصميم المشروع وتبين لي أنك قد قمت بالإعلان عن جملة متغيرات منها CurrencyManager التي لها علاقة بالتعامل مع السجلات (التنقل بين السجلات / الحذف / التعديل ...)
أنظر أخي العزيز، لو قمنا بالإعلان عن متغير Dim cm as Currencymanager ثم استخدمنا نفس المتغير لحذف البيانات فأين المشكلة في ذلك، إليك الكود التالي :
حذف السجل الحالي :
حذف جميع السجلات:
PHP كود :
For i as integer = 0 to cm.count -1
cm.RemoveAt(i)
next
أما بالنسبة للتحديث فقد وجدت أيضا من جملة المتغيرات CommandBuilder من خلال هذا الكائن يمكن تحديث البيانات بعد الحذف فأين المشكلة في ذلك ؟
فعلى سبيل المثال تحديث البيانات بعد الحذف مباشرة :
PHP كود :
cm.RemoveAt(cm.Position)
cb = new OledbCommandBuilder(da)
da.Update(dt)
وهكذا مع حذف جميع البيانات أيضاً.
والسلام عليكم ورحمة الله وبركاته