تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] مشكلة في حفظ بيانات من الجدولين
#1
السلام عليكم :
في البداية دعوني اشخص لكم المشكلة لكي تتعرفو عليها اكثر وهي انة عندي جدولين , الجدول الاول وهو Employee يحتوي علي الحقول الاتية وهي  emp_no , martil , family حقل فاملي وهو المفتاح الاساسي .  والجدول الثاني وهو family1  وبة الحقول الاتية وهي family_no , family_n   مشكلتي وهي :

للعلم ان الحقل family  الذي هو موجود في جدول employee هو مفتاح اساسي اني واضعة في خصائص sql serever يتغير بمقدار واحد اي يعني عند اضافة حقل في الجدول الاول يعطي مقدار زيادة بمعني auto number 

الاضافة تتم بشكل عادي علي الجدول الاول وهذا مثال ويشتغل مائة في المئة

PHP كود :
cmd.CommandType CommandType.Text
            cmd
.Connection con





            cmd
.CommandText "insert into employee  (emp_no , martil , eqama , em_hair , qiad_no , education , major , fea , mastua , depart , supertend , coordinat , supervtion)  values ('" TextBox1.Text "' , '" ComboBox1.Text "'  , '" TextBox2.Text "' , '" MaskedTextBox1.Text "' , '" TextBox3.Text "' , '" TextBox4.Text "' , '" TextBox5.Text "' , '" TextBox6.Text "' , '" TextBox7.Text "' , '" ComboBox2.Text "' , '" TextBox8.Text "' , '" TextBox9.Text "' , '" TextBox10.Text "')"


 
           cmd.Connection.Open()
 
           cmd.ExecuteNonQuery()
 
           cmd.Connection.Close() 

ملاحظة : الجدول الثاني family1

وبة حقل family_no الذي يأخذ الرقم الموجدود في الحقل family  الذي هو موجود في الجدول employee  وبالتالي يبدأ الحقل family_n الذي هو مفتاح اساسي في توليد autonumber .

اريد اضافة سجل جديد في الجدول الثاني عن طريق جملة الاستعلام insert nto  هذا مثال ولكنة لايضيف اي بيانات في الجدول الثاني 

PHP كود :
cmd.CommandText "insert family1 (descrip , name , birth_date , nf_watni , family_no)  values (@descrip , @name , @birth_date , @nf_watni )"

 
           cmd.Parameters.Add("@descrip"SqlDbType.NChar).Value TextBox11.Text
            cmd
.Parameters.Add("@name"SqlDbType.NVarChar).Value TextBox12.Text
            cmd
.Parameters.Add("@birth_date"SqlDbType.Date).Value MaskedTextBox2.Text
            cmd
.Parameters.Add("@nf_watni"SqlDbType.NVarChar).Value TextBox15.Text




            cmd
.Connection.Open()
 
           cmd.ExecuteNonQuery()
 
           cmd.Connection.Close() 
الرد }}}
تم الشكر بواسطة:
#2
شكرا اخيالكريم عالرد :
للتصحيح  جملة( أنك لم تقم بترحيل قيمة أو قيم الحقل Family الموجود في الجدول Employee مع بيانات الجدول الثاني)

البيانات لاتعرض علي الفورم ولكن تعرض علي الجدول الموجود employee  في قاعدة البيانات

لكي يتم اضهار البيانات علي الفورم اي ان عند اضافة سجل جديد يجب ان تمرر قيمة الحقل family التابع للجدول employee والذي بدورة عبارة عن مفتاح اساسي auto increment  الي الحقل family_no التابع للجدول الثاني والذي بدورة عبارة عن مفتاح خارجي لكي يعطي قيمة متكررة للبيانات وبالتالي يتحرك الحقل الاخر وهو family_n والذي بدورة وهو مفتاح اساسي اخر auto increment

اخي الكريم لكي توضح الفكرة :
الجدول الاول empolyee   ويوجد فية family وهو مفتاح اساسي يتغير بمقدار واحد
 الجدول الثاني family1 ويوجد بة family_no وهو مفتاح خارجي للتكرار . وحقل اخر وهو family_n وهو مفتاح اساسي يتغيير بمقدار واحد


الرد }}}
تم الشكر بواسطة:
#3
ياأخي الكريم :
البيانات تخزن في الجدول الاول تمام ولكن لاتعرض علي الفورم عند الدخول علي قاعدة البيانات اجد ان البيانات مخزنة في الجدول الاول , هل تعرف السبب لماذا انا اقول لك وهو ان الجدولين مربوطين تمام بعلاقة لذا يجب اسناد قيمة متكررة لكي تحرك الحقل family_n والذي بدورة يولد ارقام تتحرك بمقدار واحد وبالتالي سوف يتم اضافة البيانات للجدول الثاني وسوف يتم عرضها علي الفورم . انا اعرف الشي هذا ولكن الذي لخبطني وهو كيف يتم اضافة بناء الجملة insert into علي الجدولين
الرد }}}
تم الشكر بواسطة:
#4
(25-02-17, 07:44 PM)khodor1985 كتب : نفذ عمليتي Insert بنفس العرض لكل من الجدولين

لاحظ معي اخي الكريم هذة الجمل

PHP كود :
cmd.CommandText "insert into employee (emp_no , martil )  values ('" TextBox1.Text "' , '" ComboBox1.Text "') "


 
           cmd.Connection.Open()
 
           cmd.ExecuteNonQuery()
 
           cmd.Connection.Close 
PHP كود :
cmd.CommandText "insert into family1 (descrip , name )  values ('" TextBox11.Text "' , '" TextBox12.Text "') "


 
           cmd.Connection.Open()
 
           cmd.ExecuteNonQuery()
 
           cmd.Connection.Close() 
الاولي تضيف سجل جديد الي البيانات المنسدة اليها .
الثانية لايشتغل .

الموضوع ينقصة المفتاح الاساسي = المفتاح الخارجي لكي يضيف البيانات الي الجدول الثاني ولكن كيف يتم دمج الجدولين في جمة insert into هذا لم اعرفة

يبدو ان الموضوع صعب ولكن لابد من طريقة
الرد }}}
تم الشكر بواسطة:
#5
السلام عليكم

ضع في كل جدول عمود مفتاح رئيسي وسمه ID ترقيم تلقائي.
وفي أي جدول يريد يرتبط بجدول آخر ضع عمود نوع رقم سمه Table3_ID والاسم Table3 مثال لاسم الجدول الآخر الذي سيرتبط به.
بعد ذلك قم بالربط بينهم بالطريقة المعروفة في قسم العلاقات Diagram.
الرد }}}
تم الشكر بواسطة:
#6
شكرا عالرد
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  هل من الممكن العمل على قاعدة بيانات اكسل على الفيجوال بيسك خالد كامل1 4 80 24-03-24, 02:00 AM
آخر رد: خالد كامل1
  مشكلة في التايمر assuhimi 3 78 23-03-24, 04:51 PM
آخر رد: Taha Okla
  [سؤال] أتمنى اجابة وافية:عمل برنامج بقاعدة بيانات SQL دون حاجة تثبيت SQLSERVER dr.programming 6 598 19-03-24, 08:56 AM
آخر رد: سلامه محمد11
  استعلام select عن مجموعة بيانات Adel27213 1 172 15-03-24, 01:11 AM
آخر رد: justforit
  [سؤال] مشكلة اتصال مفتوح dell 2 150 12-03-24, 09:46 PM
آخر رد: dell
  مشكلة عند نقل البرنامج من فيجوال 2013 الى فيجوال 2017 strongriseman 5 148 12-03-24, 10:37 AM
آخر رد: strongriseman
  مشكلة فى جمع عمود فى داتا جريد فيو احمد خطاب 3 152 06-03-24, 07:49 PM
آخر رد: احمد خطاب
  تعديل بيانات عمود DataGridView دفعة واحدة مصمم هاوي 2 164 05-03-24, 08:27 PM
آخر رد: مصمم هاوي
Photo [VB.NET] مشكلة في شكل الفورم abuyazan 5 293 27-02-24, 09:38 PM
آخر رد: aljzazy
  [VB.NET] تحديث بيانات فى كلاس من جدول سيكوال asdfar1977 6 184 26-02-24, 01:07 AM
آخر رد: asdfar1977

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


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