منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[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=18022)



استفسار بخصوص استعلام التعديل - dark1459 - 14-11-16

السلام عليكم :

اريد استفسار بسيط  من اصحاب العلم في حل هذة المشكلة البسيطة وهي عندي جدولين ويوجد بينهما علاقة للعلم انهما من قاعدة بيانات 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, "المعلومات")


RE: استفسار بخصوص استعلام التعديل - ابو ليلى - 14-11-16

اخي Dark لماذا تستخدم Inner Join في عمليات التحديث لما لا تقوم بتعديل كل جدول على حدا اليس من الافضل لك ان تعتمد الطريقة التقليدية و المتعارف عليها و تبتعد عن تعقيدات الربط في جمل الاستعلام 
حتى البرامج الكبيرة و الاحترافية لا تعتمد مثل هذه الطرق ؟؟
اطرح مشكلتك بشكل مفصل و ان شاء الله ستجد الاجابة 


RE: استفسار بخصوص استعلام التعديل - dark1459 - 14-11-16

شكرا اخي عالرد السريع والاستجابة ولكن كيف يمكن ذالك .
مثال انا عندما اعدل علي الجدول الرئيسي وهو 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

الاستاذ ابوليلي ان الجداول مربوطة وتوجد علاقة بينهما


RE: استفسار بخصوص استعلام التعديل - ابو ليلى - 14-11-16

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


RE: استفسار بخصوص استعلام التعديل - dark1459 - 14-11-16

انظر اخي الكريم

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

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


RE: استفسار بخصوص استعلام التعديل - ابو ليلى - 14-11-16

اخي من خلال الصورة الخاصة بك (اذا كانت تمثل الجداول الحقيقية في مثالك ام هي مجرد توضيح)
نحن نحدث الجدول الفرعي بالاعتماد على شرط محدد (حقل ما)
و في الكود الخاص بك و الذي يحدث الجدول family انت استخدمت الحقل e_no كشرط للتحديث
و من خلال النظر للصورة انا لا ارى الحقل e_no في الجدول الفرعي family  و بدلا منه  ارى family_no
كل ما اريده منك ان تحدد حقل الربط في الجدول الفرعي ( KeyForiegn) و استخدامه في عملية التحديث (اي ان يكون هو حقل الشرط)


RE: استفسار بخصوص استعلام التعديل - dark1459 - 15-11-16

يا اخي الكريم المسئلة واضحة في الصورة و كما قلت حقل الربط في الجدول الفرعي 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% وسامحني اتعبتك معي


RE: استفسار بخصوص استعلام التعديل - ابو ليلى - 15-11-16

هذا كودك القديم
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 "'" 

تمام بالتوفيق اخي الكريم


RE: استفسار بخصوص استعلام التعديل - dark1459 - 15-11-16

نعم هكذا كما قلت شكرا جزيلا وسامحني اتعبتك معي فعلا