كيف أستطيع عمل قفل للداتا بيز أثناء تعديلي عليها من برنامج سي شارب لمنع محاسب آخر من التعديل عليها , أقصد ما هو الكود الذي أضعه ؟
كيفية عمل لوك على الداتا بيز أثناء التعديل ؟
هناك طريقتين. كل طؤيقة لها متطلبات معينة.
1. يكون لديك متغير منطقي bool اسمه مثلا allowEdit يكون بالبداية true وضمن الميثود المسؤلة عن التعديل. وفي اول سطر فيها نضع نفحص الشرط اذا كان allowEdid == true. في هذا الحالة وضمن جملة if. نحول قيمة allowEdit =false. ونجري عملية التعديل. في هذا الاثناء اذا اراد شخص ما التعديل فهو بحاجة لان يكون الشرط allowEdit =true. بالتالي لن يستطيع حتى انتهاءك من التعديل. ولا تنسى ان نرجع قيمة allowEdit =true. بنهاية التعديل للسماح لمستخدم اخر بالتعديل. وتعتبر هذه الطريقة تقليدية.
2. باستخدام Multithreaded وهي الطريقة الأفضل بالنسبة للانظمة متعددة المستخدمين. حيث كل عملية على قاعدة البيانات يكون لها thread معين. وبعمل تزامن synchronization على الميثودز. تضطر ال thread للانتظار لحين انتهاء واحدة سابقة قامت بنفس العملية.
• • •
[ ربيّ احفظ سوريا الحبيبة]

Eng.Tareq Jehad كتب:هناك طريقتين. كل طؤيقة لها متطلبات معينة.
1. يكون لديك متغير منطقي bool اسمه مثلا allowEdit يكون بالبداية true وضمن الميثود المسؤلة عن التعديل. وفي اول سطر فيها نضع نفحص الشرط اذا كان allowEdid == true. في هذا الحالة وضمن جملة if. نحول قيمة allowEdit =false. ونجري عملية التعديل. في هذا الاثناء اذا اراد شخص ما التعديل فهو بحاجة لان يكون الشرط allowEdit =true. بالتالي لن يستطيع حتى انتهاءك من التعديل. ولا تنسى ان نرجع قيمة allowEdit =true. بنهاية التعديل للسماح لمستخدم اخر بالتعديل. وتعتبر هذه الطريقة تقليدية.
2. باستخدام Multithreaded وهي الطريقة الأفضل بالنسبة للانظمة متعددة المستخدمين. حيث كل عملية على قاعدة البيانات يكون لها thread معين. وبعمل تزامن synchronization على الميثودز. تضطر ال thread للانتظار لحين انتهاء واحدة سابقة قامت بنفس العملية.
مشاراكاتك رائعة أخي الكريم, جزاك الله تعالى خيراً وزادك علماً.