![]() |
|
[كود] كيف اتراجع عن عملية اضافة الى قاعدة البيانات عند حدوث خطأ ما - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182) +--- قسم : قسم مكتبة اكواد VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=185) +--- الموضوع : [كود] كيف اتراجع عن عملية اضافة الى قاعدة البيانات عند حدوث خطأ ما (/showthread.php?tid=17881) |
كيف اتراجع عن عملية اضافة الى قاعدة البيانات عند حدوث خطأ ما - myalsailamy - 02-11-16 السلام عليكم و رحمة الله و بركاته ،، اليوم احببت ان اضع كود بسيط لا يعرفه الكثير من الزملاء وهو التراجع عن عملية في قاعدة البيانات . ولعلك تتسأل ما الغرض او الفائده منها . لنفرض مثلاً بانك تقوم باضافة بيانات في احد الجداول و تريد اضافة بيانات أخرى الى جدول اخر مرتبطه بالبيانات التي في الجدول الاول و لكن لسبب ما حصل خطأ غير متوقع مما سيجبرك الى حذف البيانات السابقه لانه حصل خطأ . السيناريو المعتاد هو انك ستقوم بحذف الحقل التي تم اضافته بجملة استعلام جديده هذا اذا كان الحقل الذي تم التأثير عليه محدود فما بالك اذا كان خطأ قاتل اما تحديث جميع البيانات او او او ...الخ الحالات كثيره و لا يمكنني حصرها ، وهنا يأتي دور المكتبه Transaction.Rollback() و التي ستقوم بهذا الدور نيابه عنك ، بحيث تتراجع عن جميع الكويري التي طبقتها اذا حصل خطأ ما و بهذا تختصر عليك كتابة أكواد لمعالجة الخطأ الذي حصل .كود يشرح طريقة استخدامها : كود : Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Clickهذا الكود سيقوم باضافة بيانات بشكل سليم و لا يوجد فيه اي خطأ لذلك سيتم التنفيذ بدون اي مشاكل و لكن لنقوم بالتلاعب في جملة الاستعلام الثانيه ، وهي : كود : [size=small][font=Monaco, Consolas, Courier, monospace]myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (101, 'Description')"[/font][/size]و نقوم بكتابة العمود RegionID بهذا الشكل RegionD بدون حرف الـ I ، و هذا من الطبيعي انه سيحدث خطأ !!! و لكن ماذا سيحدث ؟! لن يتم تطبيق جملة الاضافه الاولى بالرغم انه تم تنفيذها بنجاح و بدون مشاكل و لكن ربطنا نجاح جميع الكويري تعتمد على عدم فشل اي واحده منهن ، و في حالة خلاف ذلك فانه لن يتم تنفيذ الكل حتى لو كانت صحيحه ، اتمنى ان الفكره اتضحت الان . |