![]() |
|
[VB.NET] مراجعة الاسم قبل التعديل بقاعدة البيانات - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182) +--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183) +--- الموضوع : [VB.NET] مراجعة الاسم قبل التعديل بقاعدة البيانات (/showthread.php?tid=30688) الصفحات:
1
2
|
مراجعة الاسم قبل التعديل بقاعدة البيانات - محمد اسماعيل - 02-08-19 السلام عليكم عندي مشكلة بسيطة بكود التعديل وهيا اريد عدم تكرار الاسم عند تعديل البيانات طيب في فكرتين اولهما جعل عمود الاسم لايقبل التكرار بقاعدة البيانات اكسيس او سيكول وبجملة الخطا عند التكرار يتوقف التعديل وانا مش حابب الطريقة دية اريد فحص حالة الاسم بالداتا سيت دة كود التعديل العادي كود : Dim com As New OleDbCommand("UPDATE CLIENT_TB SET CLIENT_NAME=@CLIENT_NAME WHERE CLIENT_ID =@CLIENT_ID", con)دية وظيفة للبحث اذا كان الاسم موجود او لا اذا كان غير موجود يتم التعديل واذا كان موجود يظهر رسالة التكرار كود : fillDATASET(Me, DSDETAILSFILA, "CLIENT_TB", "SELECT CLIENT_NAME FROM CLIENT_TB WHERE CLIENT_NAME = '" & TEXT_NAME.Text.Trim() & "'")المشكلة الان الكود بالاعلي بينفع فقط في حالة الاضافة اما التعديل ففي مشكلة لو بعدل علي بيانات عميل معين وبعدل اي بيانات غير الاسم فمش هيعدل لان الاسم موجود وانا بعدل بنفس الاسم ومش هيكون مكرر عايز فكرة في الموضوع دة RE: مراجعة الاسم قبل التعديل بقاعدة البيانات - ابراهيم ايبو - 02-08-19 السلام عليكم اخي محمد
يفضل التعديل لكل الحقول وبرقم الاي دي لانه لايتكرر
اي اجعله شرطا
RE: مراجعة الاسم قبل التعديل بقاعدة البيانات - محمد اسماعيل - 02-08-19 (02-08-19, 05:21 AM)ابراهيم ايبو كتب : حلو الكلام وجربت الطريقة بس الفكرة دخلة مع بعض معايا دة عمود الاسم وبعد ذالك الايدي :- علي 1 ابراهيم 2 علاء 3 جابر 4 وقفت علي علي مثلا وهعدلة عن طريق بحث الاسم مع الايدي لو مكرر عادي لنفس الصف طيب لو خليت علي وعدلتة بابراهيم معني كدة انة اصبح مكرر ولم يتم التعرف علي التكرار لاني بحثت بكود الصف المحدد وايدي الصف وتجاهلت باقي الاسماء والصفوف ولا فكرتك اية كاملة عشان مش مركز RE: مراجعة الاسم قبل التعديل بقاعدة البيانات - سعود - 02-08-19 اخي الكريم انت اذا مستخدم DataSet او DataTable لماذا تستخدم اكواد اتصال متصل؟! هل هناك ما يمنع من استخدام التحرير كامل(إضافة تعديل حذف بحث) باستخدام المخزن(ان صحت التسمية) واقصد الجدول المؤقت DataTable او القاعدة المؤقتة DataSet؟ ستجد المتعة والسهولة و الانسيابية ان تعاملت معها. الا اذا كان هناك مانع لا اعرفه..... تحياتي. RE: مراجعة الاسم قبل التعديل بقاعدة البيانات - محمد اسماعيل - 02-08-19 (02-08-19, 05:48 AM)سعود كتب : اخي الكريم انت اذا مستخدم DataSet او DataTable لماذا تستخدم اكواد اتصال متصل؟! مش فاهمك ان تقصد الاضافة والتعديل والحذف والبحث من خلال الاضافة مع برنامج الفيجول ستوديو لو دة قصدك فهيا تعود مش اكتر انما مفيش اي مشكلة خالص بالنسبة ليا . RE: مراجعة الاسم قبل التعديل بقاعدة البيانات - سعود - 02-08-19 PHP كود : If Not DSDETAILSFILA.Tables("CLIENT_TB").Rows.Count > 0 Then DSDETAILSFILA اليست هذه DataSet ؟ بلى صحيح؟ اذا هي بالفعل DataSet فهذا يعني البيانات لديك فيها ولست بحاجة للتواصل مع المصدر الاصلي للبيانات في الوقت الحالي. [تنبيه التحقق فيه نقص - اذا اقتنعت بكلامي واتضح لك باذن الله اكمل معك النقاش وان احببت الاكمال باي اسلوب تراه فانت حر] اذا اردت التحقق من اسم هل موجود مسبقا ام لا تكتب الكود التالي وهو للاستعلام من نفس الـ DataSet المؤقتة الحالية. PHP كود : If ds.Tables(0).Select("tname='" & tname.Text & "'").Count > 0 Then MsgBox("Exist") : Exit Sub ارجو تطلع عليها فستجد متعة بالتعامل معها الا ان كان هناك ما يمنع (واقصد مانع فني تقني) آخر مثال صممته والذي قبله وقبله كله باستخدام الاتصال المنفصل مع DataRow RE: مراجعة الاسم قبل التعديل بقاعدة البيانات - محمد اسماعيل - 02-08-19 (02-08-19, 06:32 AM)سعود كتب : فهمتك الي انتا قولتة صح تماما لو في بيانات كتير انما البحث وعدد الصفوف هيقتصر علي صفين فقط واحد الي انا واقف عندة والثاني المكرر مفيش الوقت او حجم البيانات الي يعطل او ياخذ وقت انا معاك تمام فيما قولت وطريقتك الافضل
RE: مراجعة الاسم قبل التعديل بقاعدة البيانات - ابراهيم ايبو - 02-08-19 اخي محمد الا يمكن ان يكون هناك سجل احر يحمل نفس الاسم ؟ الجواب يمكن ولكن سيحتلف عنه بالكنية او المواليد او او ويبقى الاي دي فريد لايتكرر شيء أخر لماذا تعدل الاسم؟ انت اذا عدلت الاسم هذا يعني شخص اخر وهنا يجب اضافة جديد لاتعديل ناحية اخرى يمكن جعل حملة التعديل بشرطين Where name=@name And id=@id تشدد زائد ولكن ليست ذات فائدة لان المعرف هو الاي دي وهذا يكفي بالنسبة لما قاله اخي الحبيب سعود (هو دائما يضع يده على موطن الداء) الذي يتحدث عنه بسمى الاتصال بالوضع المنفصل اما بداتا تايل او بداتاست وبصراحة انا استخدم هذا الوضع بنسبة 95 بالمئة طبعا لكل من الوضع المنفصل والمتصل محاسن وعيوب ان احببت ذلك تابع مع اخي سعود جزاه الله كل خير سيوضح لك الامر نسيت ان اسألك كبف تجلب سجل الشخص لتقوم بتعديله؟ ام انك تقوم بكتابة اسم الشخص ومعلوماته ثم عند الحفظ سيتأكد ان كان هذا الاسم موجودا يقوم زر الحفظ بامر تعديل وان لم بكن موجودا يقوم بامر حفظ ... وهذا ايضا حاطئ لماذا ؟ افرض ان لديك شخص ومسجل باسم Abdullah وقمت بكتابة الاسم لنفس الشخص وانت تقصده تماما وكتبت اسمه هكذا Abdallah فسيعتبر البرنامج ان هذا الاسم غير موجود فما رأيك لذلك قبل اي تعديل يجب جلب السجل المراد التعديل عليه دمت بخير اخي محمد RE: مراجعة الاسم قبل التعديل بقاعدة البيانات - محمد اسماعيل - 02-08-19 (02-08-19, 07:03 AM)ابراهيم ايبو كتب : اخي محمد الا يمكن ان يكون هناك سجل احر يحمل نفس الاسم ؟ موضوع الايكون هناك سجل اخر يحمل الاسم يعتمد علي ذاكرة المستخدم وتركيزة لان للاسف المستخدم بيستسهل وذاكرة صفر في كل الاحوال موضوع التعديل للاسم فقط حصل كتير معايا في برامج بسيطة يدخل في ذاكرة المستخدم اسمين معا ويختار واحد بدل التاني ويرجع يعدل علي الاثنين لاختلاف ارصدة كل واحد منهم الحل بالنسبة ليا هيكون كالاتي نفس كل شيء ماعدا جملة الاستعلام هيكون في شرط الايساوي الاسم لايدي الصف الحالي كود : fillDATASET(Me, DSDETAILSFILA, "CLIENT_TB", "SELECT CLIENT_ID,CLIENT_NAME FROM CLIENT_TB WHERE CLIENT_NAME = '" & TEXT_NAME.Text.Trim() & "' AND CLIENT_ID<>" & LAB_IDVAL.Text & " ")انا حطيت الكود عشان الجميع يستفيد منة بشكركم جميعا كل الشكر لك ولاخي سعود علي نصيحتة الغالية سجل الشخص المعدل نفس كود الاستعلام مع الطريقة دية لكل تيكست كود : ' من قاعدة البيانات عند عدم وجود الاعمدة كاملة بالداتاجريد نفسة الكود سريع ومفيش مشاكل نهائي معايا بالرغم من استخدامي الداتاتابل بس عادي مش بهتم RE: مراجعة الاسم قبل التعديل بقاعدة البيانات - معتز حسن - 02-08-19 الأخ : محمد إسماعيل واجهتني هذه المشكلة و من قبل وتمكنت من حلها بعد عدة محاولات .. أعتقد أن المشكلة تكمن في هذا الموضع CLIENT_ID =@CLIENT_ID في حالة إذا كان CLIENT_ID معرف على أنه رقم تلقائي .. لان قاعدة البيانات لا تسمح لك بالتعديل عليه.. فالاكود السابق يقوم بالتعديل على على الحقل CLIENT_ID من خلال البارميتر @CLIENT_ID.... قم بإسناد قيمة الحقل CLIENT_ID إلى متغير أو textbox لتكون نهاية الكود كالتالي : (where CLIENT_ID= '" & TextBox14.Text & "'", con)) على أن لا يتم التعديل على textbox14 لان البرنامج في هذه الحالة لن يجد القيمة التي على أساسها سوف يتم التعديل. |