الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سؤال في ال ADO.NET

مغلق
بدأه The Unknown في 1 يوليو 2006 · 3 رد · 525 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمه الله وبركاته

عندي استفسار بسيط ان شاء الله عن ال ado.net في حاله عمل UPDATE لحقل معين من الداتابيس وبافتراض اني اريد ان اضيف بيانات على البيانات الموجوده حاليا في هذا الحقل هل يستلزم ان استخدم ال data reader في كل مرة حتى اقرا محتويات الحقل من الداتابيس واضعه في جمله ال UPDATE +البيانات الاضافيه التي اريد ان اضيفها؟

سؤالي الثاني ماذا يحدث لو اكثر من برنامج فتحوا الداتابيس وعدلوا عليها في نفس الزمن؟ اعتقد سيكون هناك خلل وكيف يمكن تفاديه؟

شكرا لكم مقدما اخواني

#2

السلام عليكم يا اخى (غير معرف) ورحمه الله وبركاته.

اولا :

لعمل (update) لقاعده البيانات يمكنك فقط اختيار الرو(row) و(column) والخانه التى تريد ان تعملها اب دايد .

عن طريق ال(syntax) ده

افرض انى عندى قاعده بيانات دخول مستخدمين على الموقع يحتوى كل خانه على بيانات معينه انا بس عاوز اغير فى الصف ده بحيث انى اغير الشئ اللى انا عاوزه بس

يمكنك استخدام السينتاكس ده

update mytable set username='snouto' and password = 'password' where firstname='mohammed'

هذا على سبيل المثال.

ثانيا :

لا تقلق بشأن مين اللى هيأكسس البيانات الاول لان قاعده البينات اساسا تصميمها لا يسمح بغير thread واحد انه يأكسس البيانات مره واحده بس لان File System لقاعده البيانات يعتبر unithreading للصف الواحد فى الجدول ولكن حتى تتاكد من ذلك ويكون قلبك متطمئن اعمل التالى عند عمليه الكتابه الى قاعده البيانات يمكنك استخدام lock على سبيل المثال انت عندك Type او Class هوا اللى بيقرأ البينات ويكتب عليها يمكنك استخدام lock على الشكل التالى اذا كان الclass تحتوى على method تكتب اسمها WriteToDb فيمكنك استخدام الكود التالى

lock(MyClass.WriteToDb()){

//here you can write to the database without warning about who will write first

}

#3

السلام عليكم

انا فهمت منك ياأخ The Unknown

انك عندك قيمه قديمه في الحقل و محتاج تضيف عليها او تحذف منها قيمه تانيه

يعني محتاج تعمل عمليه علي القيمه القديمه و القيمه الجديده لانتاج القيمه المطلوبه

عموما ممكن تستخدم triggers ويكون instead of update

وممكن تعمل transaction و استخدام متغيرات لامكانيه الحصول علي القيمه الجديده و القيمه القديمه

و عمل المطلوب عليهم ومن ثم عمل update بالقيمه الناتجه من العمليه

و طبعا ال transaction يكون في اجراء مخزن و بيأخذ القيمه الجديده كمعامل

وممكن تعمل ال transaction عن طريق ال ado لو مش عايز تستخدم اجراء مخزن

#4

اخواني الكرام snouto , أحمد بارك الله فيكم على المداخله الرائعه والحمد لله فهمت ما اريد من كلامكم وان شاء الله جاري التطبيق

شكرا لكم واسف جدا على الازعاج

اخوكم

هذا الموضوع مغلق.

مواضيع مشابهة