بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
اخوتي احبتي اساتذتي الكرام حياكم الله وبياكم وللجنة سهل الله خطاكم
الكتاب واضح من عنوانه

محتاج كود لحذف البسجل الحالي على ان يعمل على الحذف السجل وتحديث قاعدة البيانات مباشرة دون الحاجة الى اغلاق واعادة تشغيل البرنامج لتنفيذ الامر.
بالاضافة الى كود لحذف جميع السجلات + كود لإعادة ترقيم السجلات لان مثل ماتعرفون حضراتكم انه عند حذف سجل معين ليكن مثلا رقم 2 سيكون مكانه فارغ اي التسلسل سوف يصبح 1 3 4 5 وهكذا ولتلافي الامر نعيد ترقيم السجلات من جديد
تفضلوا هذا المثال جزاكم الله خير
بالأنتظار جزاكم الله خير
اخي الكريم اكواد الحذف يتم تنفيذها فور اجرائها .. لكن الذي سبب لك الارباك هو كون اجراء جلب البيانات ليس مستقلا
فلقد كتبت عدة امثلة استخدمها لكن يبدو انك لم تفطن لها
مثلا اجراء gd
نكتب
PHP كود :
private sub gd()
هنا اكواد جلب البيانات وربطها
end sub
PHP كود :
وهنا في اي حدث مثلا حدث تحميل الفورم نكتب فقط gd()
فبعد الاضافة او الحذف او التعديل تنادي الاجراء gd() هذا هو الحل
(10-08-15, 01:14 AM)سعود كتب : [ -> ]اخي الكريم اكواد الحذف يتم تنفيذها فور اجرائها .. لكن الذي سبب لك الارباك هو كون اجراء جلب البيانات ليس مستقلا
فلقد كتبت عدة امثلة استخدمها لكن يبدو انك لم تفطن لها
مثلا اجراء gd
نكتب
PHP كود :
private sub gd()
هنا اكواد جلب البيانات وربطها
end sub
PHP كود :
وهنا في اي حدث مثلا حدث تحميل الفورم نكتب فقط gd()
فبعد الاضافة او الحذف او التعديل تنادي الاجراء gd() هذا هو الحل
السلام عليكم ورحمة الله وبركاته
تقريباً موجود مثل ماقلت دالة جلب البيانات
لكن المشكلة تم عرض البيانات عن طريق الكمبوبوكس :

هل يتم الحذف من الكومبوبوكس ام من القاعدة مباشرةً
جزاكـ الله خير
اللي انصح بيه اخواني .. في حال التجربة والتعلم ان لا يتطرقوا لامثلة كبيرة معقدة وانما فقط اشياء صغيرة حتى يتمكن من حل كل الاشكالات التي تواجهه بعد ذلك يستطيع تضخيم مشروعه الى اكبر ما يمكن.
اطلعت على المثال المرفق (لا ادري يبدو لاني البارحة مرهق) فلم اتمكن من الاستمرار بالنظر اليه.
باذن الله اما سعود او غيره يكتب الحل ان سهل الله ويسر.
يفترض أن لا يتم إعادة ترقيم السجلات، لأنه عند حذف سجل قديم مثلاً ... ربما يكون هناك سجلات في جداول أخرى مرتبطة بها السجل اعتماداً على رقم ID السجل، وإعادة الترقيم سيخلط السجلات، بحيث سترتبط بالسجل الخطأ.
(10-08-15, 12:03 PM)أبوبكر سويدان كتب : [ -> ]يفترض أن لا يتم إعادة ترقيم السجلات، لأنه عند حذف سجل قديم مثلاً ... ربما يكون هناك سجلات في جداول أخرى مرتبطة بها السجل اعتماداً على رقم ID السجل، وإعادة الترقيم سيخلط السجلات، بحيث سترتبط بالسجل الخطأ.
أحسنت اخي .. بارك الله بيك .. هذا امر قليل من يفطن له.
إقتباس :لكن المشكلة تم عرض البيانات عن طريق الكمبوبوكس
لا فرق اخي الكريم فانت حين تنفذ اي اجراء فانك ستطلب الاجراء الرئيسي الذي يجلب البيانات الى الادوات ومن بينها الكومبوبوكس.
السلام عليكم إخواني الأعزاء ورحمة الله وبركاته
ما تفضل به الأخ أبو بكر سويدان هو عين المنطق في التعامل مع السجلات في قواعد البيانات، ولتلافي هذا الأمر يمكن إدراج حقل جديد في الجدول بعنوان 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)
وهكذا مع حذف جميع البيانات أيضاً.
والسلام عليكم ورحمة الله وبركاته
أضيف إلى ما تفضل به الأخ khodor1985 ... أنني في برامجي لا أستعمل الحذف إطلاقاً، بل أخفي السجلات، لأنه مع الخبرة ومعرفة طبيعة الزبائن ... ستندم على الحذف.
أنشيء حقل خاص بالإظهار والإخفاء، وعلى حسب طبيعة العمل المطلوب، مع إمكانية الاسترجاع.
هذه الطريقة وما تحتويه من متاعب أفضل من الحذف والمشاكل المترتبة عليه.
(13-08-15, 02:48 AM)khodor1985 كتب : [ -> ]السلام عليكم إخواني الأعزاء ورحمة الله وبركاته
ما تفضل به الأخ أبو بكر سويدان هو عين المنطق في التعامل مع السجلات في قواعد البيانات، ولتلافي هذا الأمر يمكن إدراج حقل جديد في الجدول بعنوان 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)
وهكذا مع حذف جميع البيانات أيضاً.
والسلام عليكم ورحمة الله وبركاته
وعليكم السلام ورحمة الله وبركاته
جزاكـ الله خير اخي باركـ الله فيكـ
لكن يعترض على المتغير (cb)
وفقكـ الله
(13-08-15, 03:14 AM)أبوبكر سويدان كتب : [ -> ]أضيف إلى ما تفضل به الأخ khodor1985 ... أنني في برامجي لا أستعمل الحذف إطلاقاً، بل أخفي السجلات، لأنه مع الخبرة ومعرفة طبيعة الزبائن ... ستندم على الحذف.
أنشيء حقل خاص بالإظهار والإخفاء، وعلى حسب طبيعة العمل المطلوب، مع إمكانية الاسترجاع.
هذه الطريقة وما تحتويه من متاعب أفضل من الحذف والمشاكل المترتبة عليه.
السلام عليكم ورحمة الله وبركاته
حياكـ الله خير
جزاكـ الله خير ممكن تعلمني هذه الطريقة كيفية اخفاء البيانات واستدعائها فيما بعد وفقكـ الله
إقتباس :السلام عليكم ورحمة الله وبركاته
حياكـ الله خير
جزاكـ الله خير ممكن تعلمني هذه الطريقة كيفية اخفاء البيانات واستدعائها فيما بعد وفقكـ الله
بعد اذن الاخ .. يقصد بالاخفاء اي تضع عمود من نوع نعم/لا باسم مثلا isshow وعند الاستعلام تشترط ان القيمة نعم.
وعند الاخفاء تضع القيمة لا.