حسنا لقد يتم تعبئة جدول Pa بكل البيانات لكل الطلاب هذه ملاحظة اذا لم تكن مشكلة فهي اذا ليست مشكلة
مع انني ارى ولست بمنزلة خبرتكم ان يتم احظار بيانات فقط اول سجل .
ايضا عند النقر على زر الحركة يتم الدخول للاجراء Fill_TableWithCoundition مرتين وليس مرة واحدة ولازلت ابحث عن سبب المشكلة ولماذا ومن اين جاء الامر او الايعاز بتعبئة البيانات مرة اخرى .
عفوا تصحيح جدول PayMents_TB لايوجد خيار تعديل
المشكلة في الحدث BnStudant_CurrentChanged وايضا BnStudant_CurrentChanged هما المسؤلان عن هذا التكرار لتعبئة الجدول مرتين
طبعا ان وجود الامر DS.clear يحل المشكلة ولكن المفترض ان يتم توحيد الحدثين وما فيهما يكون بحدت واحد منهما فقط لاجل كود نظيف
PositionChange يتشارك مع الحدث
CurrentChanged هنا تكمن المشكلة
وعندما الغيت الحدث
PositionChange سار كل شئ على مايرام الان
ايضا في زر الحفظ اجد اعادة ملئ البيانات من جديد
PHP كود :
'اعادة لملئ
Dt_Studant = Studant.FillTable
سواء في الاضافة او التعديل ، اليس من الافضل هو اضافة السجل الجديد الى الـ Table دون الحاجة الى ارسال امر تحديث او تعبئة من جديد .
طبعا لا مشكلة هنا على برنامج صغير وعلى جهاز محلي ولكن بحال كان الجهاز هذا جهاز طرفي ويتصل بسيرفر على بعد عدة حجرات بسلك طوله 20 متر ويجلب بيانات 100 ألف سجل فارى انها مشكلة والمفروض ان ننتج مثال جيد يصلح لكل الاحوال
في الحذف ايضا يوجد امر التعبئة
PHP كود :
'حذف الطالب
Pos = BnStudant.Position
Studant.Delete(CType(Lb_ID.Text, Integer))
'اعادة لملئ
Dt_Studant = Studant.FillTable
عند حذف سجل من جدول المؤشر يتوقف تلقائيا على اخر سجل فيه .
يعني ايضا لا حاجة للتعبئة ، وان كان هناك ما يحتاج الى ضبط يتم ضبطه يدويا .
بالنسبة لعملية الحذف من الممكن الغاء امر التعبئة واستخدام هذا الامر
PHP كود :
Dt_Studant.Rows(BnStudant.Position).Delete()
ايضا لحل مشكلة التعبئة في زر الحفظ لامر تعديل هو عدم التعبئة اطلاقا لان البيانات التي بالادوات هي نفسها التي تم حفظها ولا تحتاج الى اي تغيير
اما عند الاضافة فسوف اعود معكم بعد ساعة لانني خارج في مهمة خارج المنزل