تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] استفسار بخصوص استعلام التعديل
#1
السلام عليكم :

اريد استفسار بسيط  من اصحاب العلم في حل هذة المشكلة البسيطة وهي عندي جدولين ويوجد بينهما علاقة للعلم انهما من قاعدة بيانات sql serever 2008  الجدول الاول وهو emp_no وهو الجدول الرئيسي الخاص ببيانات الموظف والجدول الثاني وهو family وهو خاص بالعائلة وللعلم ان بينهما علاقة .

سوالي وهو عند تعديل البيانات عن طريق جملة الاستعلام الخاصة بجملة inner join والمعروفة بعرض محتويات الجداول المربوطة لاتعمل ولكن عند التعديل بالجدول الرئسي تعمل معي . 

اترككم مع استعلام التعديل :

cmd1.CommandType = CommandType.Textcmd1.CommandType = CommandType.Text
cmd1.Connection = con
cmd1.CommandText = "UPDATE emp_no INNER JOIN family ON emp_no.family = family.family_no SET marital = '" & TextBox2.Text & "' where e_no = '" & TextBox1.Text & "'"

cmd1.Connection.Open()
cmd1.ExecuteNonQuery()

cmd1.Connection.Close()





MsgBox("تم تعديل البيانات بنجاح", MsgBoxStyle.Information, "المعلومات")


الملفات المرفقة صورة/صور
       
الرد }}}
تم الشكر بواسطة:
#2
اخي Dark لماذا تستخدم Inner Join في عمليات التحديث لما لا تقوم بتعديل كل جدول على حدا اليس من الافضل لك ان تعتمد الطريقة التقليدية و المتعارف عليها و تبتعد عن تعقيدات الربط في جمل الاستعلام 
حتى البرامج الكبيرة و الاحترافية لا تعتمد مثل هذه الطرق ؟؟
اطرح مشكلتك بشكل مفصل و ان شاء الله ستجد الاجابة 
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال
الرد }}}
تم الشكر بواسطة:
#3
شكرا اخي عالرد السريع والاستجابة ولكن كيف يمكن ذالك .
مثال انا عندما اعدل علي الجدول الرئيسي وهو emp_no يشتغل التعديل ولكن عند التعديل علي الجدول الثاني family لايعمل

انظر اخي الكريم :
cmd1.CommandText = "UPDATE Emp_no SET marital = '" & TextBox2.Text & "' where e_no = '" & TextBox1.Text & "'"

هذا استعلام التعديل الجدول الاول يشتغل بشكل صحيح



cmd1.CommandText = "UPDATE family SET marital = '" & TextBox2.Text & "' where e_no = '" & TextBox1.Text & "'"

هذا استعلام التعديل الجدول الثاني لايشتغل للعلم ان الحقل marital موجود بالجدول الاول emp_no

اسف هكذا

cmd1.CommandText = "UPDATE family SET descrip= '" & TextBox2.Text & "' where e_no = '" & TextBox1.Text & "'"

هذا استعلام التعديل الجدول الثاني لايشتغل وحيث ان الحقل descrip موجود بالجدول family

الاستاذ ابوليلي ان الجداول مربوطة وتوجد علاقة بينهما
الرد }}}
تم الشكر بواسطة:
#4
الحقل e_no هو حقل الربط في الجدول الفرعي (family) اليس كذلك (هل هو مربوط بشكل صحيح و يعرض البيانات المرتبطة)
هل تظهر رسالة خطأ ؟؟
لو امكن ارفاق المشروع او صورة مصغرة عنه
كذلك استخدم اداة عرض الاكواد في محرر الكتابة افضل للعرض في صفحة المنتدى
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال
الرد }}}
تم الشكر بواسطة:
#5
انظر اخي الكريم

اعتقد انك من خلال الصورة تلاحظ ان الامور مافيها مشاكل في الربط ولكن في جملة الاستعلام التعديل فقط بجدول واحد يتم التعديل وهو الجدول الاول emp_no .

للعلم في استعلام (البحث) وبالاضافة الي جملة inner join مافيها مشكلة علي الاطلاق تتم بشكل عادي


الملفات المرفقة صورة/صور
   
الرد }}}
تم الشكر بواسطة:
#6
اخي من خلال الصورة الخاصة بك (اذا كانت تمثل الجداول الحقيقية في مثالك ام هي مجرد توضيح)
نحن نحدث الجدول الفرعي بالاعتماد على شرط محدد (حقل ما)
و في الكود الخاص بك و الذي يحدث الجدول family انت استخدمت الحقل e_no كشرط للتحديث
و من خلال النظر للصورة انا لا ارى الحقل e_no في الجدول الفرعي family  و بدلا منه  ارى family_no
كل ما اريده منك ان تحدد حقل الربط في الجدول الفرعي ( KeyForiegn) و استخدامه في عملية التحديث (اي ان يكون هو حقل الشرط)
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال
الرد }}}
تم الشكر بواسطة:
#7
يا اخي الكريم المسئلة واضحة في الصورة و كما قلت حقل الربط في الجدول الفرعي family هو family_no كيف يمكن كتابة جملة استعلام التعديل مثلا اريد ان تعديل في الحقل descrip الذي هو في الجدول family كيف السبيل الي ذالك . اكتب لي جملة استعلام التعديل مثلا اريد ان تعديل في الحقل descrip .

انظر الي الصورة التي ارفقتها سوف تري الجدول family والحقول

اخي الكريم شكرا لقد حللت المشكلة وهي نفس ماقلت family_no ان يكون هو حقل الشرط اشتغل استعلام التعديل بنجاح فعلا انة افضل من جملة inner join

cmd1.CommandText = "UPDATE family SET descrip = '" & TextBox2.Text & "' where family_no = '" & TextBox7.Text & "'"

شكرا جزيلا علي هذة المعلومة القيمة فعلا كلامك صحيح 100% وسامحني اتعبتك معي
الرد }}}
تم الشكر بواسطة: ابو ليلى
#8
هذا كودك القديم
PHP كود :
cmd1.CommandText "UPDATE family SET descrip= '" TextBox2.Text "' where e_no = '" TextBox1.Text "'" 
اليس من المفروض ان يكون هكذا
PHP كود :
cmd1.CommandText "UPDATE family SET descrip= '" TextBox2.Text "' where family_no = '" TextBox1.Text "'" 

تمام بالتوفيق اخي الكريم
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال
الرد }}}
تم الشكر بواسطة:
#9
نعم هكذا كما قلت شكرا جزيلا وسامحني اتعبتك معي فعلا
الرد }}}
تم الشكر بواسطة:



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم