الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سؤال عن ربط الـ CombBox بالبيانات

مغلق
بدأه sso_neT في 14 سبتمبر 2006 · 8 رد · 1,844 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

سلام عليكم

أخواني ,, انا صارت عندي مشكلة بسيطه ,, وما قدرت احلها ,, وهي كالتالي:

عندي جدولين :

الاول : جدول الموظفين وفيه : رقم الموظف - اسم الموظف - جنسيته

الثاني : جدول الجنسيات وفيه : رقم الجنسية - اسم الجنسية .. يعني رقم الجنسية 1 - اسم الجنسية اماراتي وهكذا

طبعا بينهم علاقة one-to-many

انا عملت فورم wizard form وطلع حقل الجنسية في الموظفين عباره عن رقم ,, والمطلوب ابغيه تطلع الجنسيات في ComboBox بالاسم وليس بالرقم

وعند الاضافة يختار من الـ ComboBox اسم الجنسية وتضاف في جدول الموظفين على شكل رقم (1.2.3....... وهكذا)

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

الصورة كما يلي :

http://www.up4world.com/images/store06/5829c2d39f.bmp

تم تعديل هذه المشاركة بواسطة sso_neT في 14 سبتمبر 2006 في 22:38

063bx.gif
#2

أخونا SSO_net

لإضافة عناصر إلى الـ ComboBox ممكن تستخدم الكود التالي وتضعه في الحدث Fram Load

ComboBox1.Items.Add("إماراتي")
ComboBox1.Items.Add("سوري")
ComboBox1.Items.Add("سعودي")

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

(ComboBox1.SelectedIndex) + 1
#3

في البداية بإمكانك إستخدام خاصيتي

DisplayMember

ValueMember

في القوائم المنسدلة

وهي كالتالي :

في حدث التحميل للفورم قم بإضافة الكود التالي :

' طبعاً Con هو كائن الإتصال تقوم بتغييره بإسم كائن الإتصال بقاعدة البيانات لديك .
con.open 
Dim ds as new DataSet 
Dim da as new oledbDataAdapter("Select Nat_id,Nat_Name From Nationalitys Order by 1",con)
da.Fill(ds,"Nationalitys")
Combobox1.DataSource = ds.Tables("Nationalitys")
Combobox1.DisplayMember = "Nat_Name"
Combobox1.ValueMember = "Nat_id"
con.close

بهذا ستجد القائمة تم تعبئتها تلقائياً عند تحميل الفورم .

:lol:

:)

وبالتوفيق ..

#4

شكرا على اهتمامكم

عرفت كيفية تعبئة ال combobox من الـ Form Load

ولكن المشكله ,, عند الاضافة ,,, حيث يختار المستخدم اسم الجنسية وابغيها تتخزن كرقم عند الحفظ في قاعدة البيانات

ارجو الرد السريع

063bx.gif
#5

السلام عليكم

ممكن تجرب هذه الاكواد وان شاء ستعمل معك بس الجداول يجب ان تكون كتالي

جدول الموظفين

رقم الموظف _ اسم الموظف _ رقم الجنسيه

جدول الجنسيات

رقم الجنسية _ اسم الجنسية

في Form1_Load

adb = New SqlDataAdapter("select * from جدول الجنسيات", cn1)
		   adb.Fill(ds, "par")
		   ComboBox1.DataSource = ds
		   ComboBox1.DisplayMember = "اسم الجنسية "
		   ComboBox1.ValueMember = "رقم الجنسية"

في الإضافة

cm1 = New SqlCommand("insert into جدول الموظفين(اسم الجنسية)values(@x1)",cn1)
   cm1.Parameters.Add("@x1",Trim(ComboBox1.SelectedValue))

وملاحظه لك اخي العزيز ان لم تفلح معك هذه الاكواد فقط اجري البحث بال ComboBox1 وستجد كل ما يسرك

"نحن لا نستسلم... ننتصر أو نموت.... وهذه ليست النهاية... بل سيكون عليكم أن تحاربوا الجيل القادم والاجيال التي تليه... اما أنا... فإن عمري سيكون أطول من عمر شانقي."

عمر المختار

اللهم انعم على بلادي بالأمن والأمان

#6

أخي العزيز

من خلال خصائص ال comboBox قم بتغيير خاصية DisplayMember إلى حقل إسم الجنسية وهذه الخاصية هيا المسؤولة عن الحقل الذي تريد إظهاره للمستخدم

وكذلك قم بتغيير الخاصية ValueMember إلى حقل رقم الجنسية وهذه الخاصية تحتوي على قيمة الحقل التي ستتعامل معه القاعدة

#7

يا أخي من خصائص القائمة أجعلها Drop Down List أي قائمة قابله للإختيار فقط ولا تقبل الكتابة والآن بكل هدوء .

عند تعبئة الــ Binding للفورم بالكامل للموظفين قم بعمل التالي :

على فرض أن إسم القائمه هو Combobox1

Combobox1.DataBindings.Add("SelectedValue",ds,"EMP.Nat_id")

والآن ستجد عند إضافة سجل جديد أنه تلقائياً يقوم بحفظ رقم الجنسية .

#8

اخى العزيز لقد قمت بارفاق مثال يتم فيه تحديث قاعدة البيانات عن طريق استخدام DataGrid

اتمنى ان يفيدك هذا المثال التوضيحىDataGridCB.rar

تم تعديل هذه المشاركة بواسطة evilgrin في 17 سبتمبر 2006 في 13:29

#9

شكرا جزيلا لكم .,

اشتغل معاي مضبوط ,,

تحياتي

063bx.gif

هذا الموضوع مغلق.

مواضيع مشابهة