منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
كيف يمكنني التعامل مع جدولين - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم قواعد البيانات (http://vb4arb.com/vb/forumdisplay.php?fid=40)
+--- قسم : قسم أسئلة قواعد البيانات تحت بيئة الـ.NET (http://vb4arb.com/vb/forumdisplay.php?fid=41)
+--- الموضوع : كيف يمكنني التعامل مع جدولين (/showthread.php?tid=2375)

الصفحات: 1 2


كيف يمكنني التعامل مع جدولين - Ahlam - 27-03-14

السـلام عليكم
اخواني لدي جدولين الاول معلومات عن الموظفين (الاسم ، الرقم الوظيفي ،تاريخ التعيين )
وعندي جدول آخر فيه ( الرقم الوظيفي ، رقم الفاتوره )

اريد طريقة بحيث اذا قمت بتخزين معلومات الموظف قي الجدول الأول ان يتم رقم الوظف في الجدول الثاني تلقائياً بدون ما اقوم بكتابة اكواد فتح قاعدة البيانات وتخزين الرقم الوظيفي في الجدول الثاني ....

هل الحل في ربط الجدولين من خلال علاقة تفي بالغرض ؟؟
وشـكراً لكم


RE: كيف يمكنني التعامل مع جدولين - Sajad - 27-03-14

السلام عليكم

اختي العزيزة ان اي حقل مشترك بين جدولين يجب ان يحتويا على نفس الرقم لذا اذا قمنا بادخال رقم في الجدول الرئيسي فيجب ادخال نفس الرقم في الجدول الثانوي

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

تحياتي



RE: كيف يمكنني التعامل مع جدولين - Ahlam - 27-03-14

اخي SAJAD شـكراً على الرد

فهمت من كلام انه لايوجد طريقة لربط الجدولين بحيث عند تخزين رقم الموظف في جدول ، يظهر تلقائياً في جدول آخر

طيب ... مافائدة ربط الجداول عند التعامل معها في الفيجيوال دوت نت ؟؟؟

هل الربط مهم في الجداول ..وما هي فائدته ؟؟؟ Heart


RE: كيف يمكنني التعامل مع جدولين - Sajad - 27-03-14

نعم الربط مهم جدا

ابسط مثال: ماذا لو اردتي ان تحذفي سجلا من الجدول الرئيسي وبالمقابل تريدين ان يحذف كل ما هو متعلق من السجل الثاني بالسجل الاول؟

فالمفتاح الثانوي يمثل حلقة وصل بين الجدولين فمثلا يوجد هنالك علاقات تسمى One to One و One to Many و Many to Many

فمن الممكن سجل واحد يرتبط بسجل واحد فقط او اكثر او عدة سجلات ترتبط بعدة سجلات من الجدول الثانوي




RE: كيف يمكنني التعامل مع جدولين - Ahlam - 27-03-14

معناها .. فقط في عمليات الحذق نستفيد من ربط الجدولين ... اي عندما نحذف من الجدول الرئيسي بيانات الموظف يقوم بحذف جميع ما هو متعلف برقمه الوظيفي في الجدول الآخر ..

فقط في حالة الحذف تكون الافادة من الربط ؟؟

الا يوجد طريقة لربط الجدولين ... اي عند اضافة رقم الموظف في الجدول الرئيسي يقوم باضاقته في الجدول الثاني ..

معلش غلبتك Big GrinBig GrinBig Grin


RE: كيف يمكنني التعامل مع جدولين - Ahlam - 27-03-14

لانني لا اريد استخدام جملة الاضافة (INSERT) مرتين .. مرة للجدول الاول ومرة بالجدول الثاني Tongue


RE: كيف يمكنني التعامل مع جدولين - Sajad - 27-03-14

اختي انا لم اقل ان الفائدة تتلخص فقط في الحذف!!!!!

يجب استخدام جملية الInsert مرتين؟ الى الان لم اسمع بInsert واحد لكلا الجدولين؟؟؟؟؟؟؟؟؟؟

طيب كيف اضيف معلومات للجدول الثاني عن طريق الجدول الاول؟

لا يوجد حقل تضاف تلقائيا من نفسه الى الجدول ما عدا الحقول التي تكون Primary Key في بعض الاحيان نجعل قيمة الحقل تلقائي بحيث تضاف الرقم وتزيد بمقدار واحد تلقائيا وهذا يعتمد على الاضافة لبقية الحقول بحيث لو لم نستخدمة جملة الInsert فالحقل التلقائي لن تضاف لها رقما تلقائيا

لذا لا يوجد شيء اسمه اضافة معلومات بدون جملة الاضافة (Insert)

تحياتي



RE: كيف يمكنني التعامل مع جدولين - حريف برمجة - 28-03-14

في قواعد البيانات اسكيو ال سيرفر هناك خاصية تسمى تريقر ممكن تعمل المطلوب ،، بمعنى عند اضافة سجل في الجدول الأول وظيفة التريقر يضيف الرقم للجدول الثاني دايركت .

بالتوفيق


RE: كيف يمكنني التعامل مع جدولين - قناص المدينة - 28-03-14

هذا الكود اتمنى ان يفيدك


كود :
dim tran As OleDbTransaction





cmd.CommandText = "insert into   A(Id_user,emp_name)values(?,?) "

        cmd.Connection = con

        cmd.Parameters.Clear()

        cmd.Parameters.Add(New OleDbParameter("@Id_user", OleDbType.VarChar)).Value = Val(txt_Id_user.Text)
       cmd.Parameters.Add(New OleDbParameter("@emp_name", OleDbType.VarChar)).Value = Val(txt_emp_name.Text)
      
        con.Open()
        tran = con.BeginTransaction
        cmd.Transaction = tran
        cmd.ExecuteNonQuery()


        cmd1.CommandText = "insert into b (Id_user,phone,email,note)values(?,?,?)"

        cmd1.Connection = con

        cmd1.Parameters.Clear()


        cmd1.Parameters.Add("@Id_user", OleDbType.VarChar).Value = Val(txt_Id_user.Text)
        cmd1.Parameters.Add("@phone", OleDbType.VarChar).Value = Trim(Val(txt_phone.Text))
        cmd1.Parameters.Add("@email", OleDbType.VarChar).Value = Trim(txt_email.Text)
      
        cmd1.Transaction = tran
        cmd1.ExecuteNonQuery()
        tran.Commit()


      

      
        con.Close()



RE: كيف يمكنني التعامل مع جدولين - kebboud - 20-09-18

(27-03-14, 10:06 PM)Ahlam كتب : معناها .. فقط في عمليات الحذق نستفيد من ربط الجدولين ... اي عندما نحذف من الجدول الرئيسي بيانات الموظف يقوم بحذف جميع ما هو متعلف برقمه الوظيفي في الجدول الآخر ..

فقط في حالة الحذف تكون الافادة من الربط ؟؟

الا يوجد طريقة لربط الجدولين ... اي عند اضافة رقم الموظف في الجدول الرئيسي يقوم باضاقته في الجدول الثاني ..

معلش غلبتك Big GrinBig GrinBig Grin

السلام عليكم أختي الكريمة احلام
عندي نفس المشكلة و ما زلت ابحث عن حل لها ..يعني عندي داتاغريدفيو و تستقبل بيانات من قاعدة اكسس ..لكن العمود الأول و الثاني أحب أن تكون بياناتهما تأتي من جدول آخر ..فما هو الحل ؟