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

كيف اربط قائمة منسدلة في DataGridView

مغلق
بدأه فلسطيننا في 21 يوليو 2006 · 6 رد · 1,738 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

أخواني الأعزاء لدي سئوالين وهما

الأن انا عندي داتا قريد أعرض بها جميع الموظفين ... في بعض الخلايا يكون عندي comboBox مثل الوظيفة والجنس والحالة الزوجية حيث انه يوجد أكثر من قيمة يمكن أن أخنها داخل الكمبوبوكس (في dataGridView2.0) كيف أعرض كذا قيمة في داخل الكومبوبوكس

السئوال الاخر وهو

نفرض انه يوجد جدول أخر تابع لجدول الموظفين وليكن جدول الحضور والغياب للموظفين كيف يمكننني عرض جميع اسماء الموظفين داخل الكومبوبوكس وعند الحفظ يجب أن يخزن رق الموظف وليس أسم الموظف

انا قرأت في MSDN يوجد كذا خاصية للتعامل مع هذه الاشكالية لكن للأسف ما ضبطت معي لا أعرف لماذا مثل

datasource و datamember و selectewd value

ارجو توضيح الأمر لو بمثال اذا تكرمتم

مشكوورين خواني الاعزاء مقدما

تم تعديل هذه المشاركة بواسطة الغملاسي في 22 يوليو 2006 في 05:43

رَبِّ لَا تَذَرْنِي فَرْداً وَأَنتَ خَيْرُ الْوَارِثِينَ

#2

السلام عليكم ورحمة الله وبركاته :

أخي الكريم بعد معاناة كبيرة و محاولات كثيرة سابقاً توصلت إلى حل المشكلة بعد تجارب شخصية ... :blink:

وإليك خلاصة تجربتي ... ;)

ليكن لدينا جدول الموظفين الموجود في باسم Employee_TB .

وجدول الدوام الذي سيأخذ من جدول الـ Attendance_TB ...

تمام لحد الآن ؟

نكمل :

سوف نضع يا أخونا االكريم في الـ DataGrid كومبو بوكس يعرض أسماء الموظفين ..

يجب عليك قبل أن تقرأ المثال المرفق أن تنتبه إلى الحقول المضافة إلى الـ DataGrid عن طريق الخاصية Columns لها ..

وأن تنتبه إلى الخاصية :

DataPropertyName :

للأعمدة المضافة للـ DataGrid ...التي سنربطها بمصدر البيانات الأساسي الخاص بالغريد ..

يعني بالنسبة للكومبو سوف يأخذ من جدول الدوام -- > حقل رقم الموظف ... حيث تثبت هذه القيمة زمن التصميم للداتا غريد .. مش ضروري بالكود ..

وحتى قبل وضع DataSource للغريد ..

تمام حتى الآن ؟؟

ونتعامل مع الكومبو هذا تماماً كأي كومبو نريد أن نربطه بلائحة ما من جدول ما باستخدام الخاصيتين :

DataSource : مصدر بيانات هذا الكومبو الذي سيكون جدول الموظفين في مثالنا ..

DisplayMember : الحقل المعروض .... اسم الموظف ..

--------------------

دعنا الآن نطرح المثال التالي :

أخي الكريم ...

المثال يحوي ( سكريبت ملف ) يحوي قاعدة البيانات + جداول المثال + إدخال البيانات ..... لأن المثال مطبق على الـ Sql Server

نفذه أولاً عن طريق الـ Query Analyzer ...

ثم جرب المثال .. وفي حال أي مشكلة أنا في الخدمة .. :)

بالتوفيق للجميع ..

LookUp__DataGrid.zip

تم تعديل هذه المشاركة بواسطة imadouzoun في 22 يوليو 2006 في 03:39

دروس و كتب مفيدة----------------------كتيب الإجرائيات المخزنةتعرف على اللغة Transact SQL <<-->> كتيب عن تنصيب قواعد البيانات Sql Server باللغة العربية كتيب عن إنشاء قواعد البيانات في SQL Server باللغة العربية <<-->> درس مع الأمثلة عن المؤشرات و التعامل معها في الـ T-SQLالعبارات الشرطية و الحلقات في T-SQL <<-->> شرح لبعض الـ Extended Stored Procedure استخدام مكتبات الـ Dot Net الخاصة بك في الـ Sql Server 2005 <<-->> التعامل مع المصفوفات من خلال الـ T-SQLتعابير الجداول الشائعة في SQL Server 2005 <<-->>الاتصال بالأداة SQL Server Management Studioحلول سريعة و لمحات برمجية --------------------------------التصدير إلى إكسل : طريقة أولى : طريقة بسطر واحد من الكود <<-->> طريقة ثانية : طريقة تحتاج إنشاء إجرائية مخزنةً تجهيز بيانات جدول بالصيغة XML تمهيداً لحفظها كملف <<-->> تصدير البيانات إلى ملفات نصية برمجياً إغلاق جميع الإتصالات المفتوحة بقاعدة بيانات محددة .. تمهيداً لاسترجاعها أو حذفها <<-->> الاستعلام بناء على وقت مخزن بالصيغة العربية ضمن حقل نصي ..حذف السجلات المتكررة و إبقاء عدد محدد منها في جدول.. <<-->> أسرع طريقة لحذف سجلات جدول كيف احصل على اسم جهازي والباسوورد باستخدام T-SQL <<-->> حشر أنواع الصور المختلفة في حقل من نوع Image باستخدام إجرائية مخزنة .كيف تعرف أنواع الصور المخزنة في حقل من نوع Image .. <<-->> إجرائيات مخزنة ببارامترات ديناميكية مفيدة جداً للاستعلامات استخدام رقم الحقل بدلاً من الإسم في عبارات الإستعلام <<-->> من هو أضخم الجداول في قاعدة بياناتي ؟معرفة زمن تنفيذ الإجرائيات ( لتختار الطريقة الأسرع بين إجرائياتك المخزنة ) <<-->> التعامل مع الـ Rules برمجياً الحصول على آخر صف في الجدول <<-->> قراءة ملفات XML باستخدام T-SQL برمجياً (مثال مرفق)سحب بيانات ملف إكسل إلى الـ SQL Server <<-->> تشفير النسخة الاحتياطية بكلمة مرور <<-->> التخلص من البيانات المكررة <<-->> حل مشكلة التاريخ الهجريDifferential Backup بالتعريف---------- لا إله إلا الله .. محمد رسول الله

أخوكم في الله..  Imad Ozone

#3

مشكوور أخي العزيز على ما قدمته

بارك الله فيك

وفيت وما قصرت

رَبِّ لَا تَذَرْنِي فَرْداً وَأَنتَ خَيْرُ الْوَارِثِينَ

#4

السلام عليكم ورحمة الله وبركاته

أخي العزيز مثالك واضح جدا .......

لدي سؤال ارجو الايضاح ووهو انه اريد وضع كذا قيمة داخل comboBox وهذه تكون موجودة داخل DataGridView مثلا لعرض الجنس ذكر أو أنثى وعند التخزين في الداتا باس يقوم بتخزين vlaue member وليس dispaly member ارجو وضع مثال يبين ذلك مع وجود Relation بين الجدولين

سؤال أخر وهو

معلش حنغلبكوووا معنا

مثلا اذا كان يوجد عندي جدولين وهما الموظفين والتفاصيل الخاصة بهم

في جدول الموظفين البينانات كاالتالي

الاسم

العنوان

الحالة الشخصية

المدينة

الدولة

في جدول التفاصيل

الجنس

عدد الاولاد

الطلبة

كيف يمكنني وضع الجميع داخل dataGridView مع العلم ما أريده أن أضع الجنس والحالة الشخصية داخل ComboBox وياريت سئالي يكون واضح

وشكرا

رَبِّ لَا تَذَرْنِي فَرْداً وَأَنتَ خَيْرُ الْوَارِثِينَ

#5

السلام عليكم

في البداية, أريد أن أنوه على شيء مهم وهو أن إذا كان جدول التفاصيل كما ذكرت ليس عبارة عن lookup table

فهذا خطأ في تصميم قاعدة البيانات, و أرجوك أن تلقي بال و اهتمام على الاساس قبل كل شيء أخر.

ببساطة: ما فائدة الحقل (الجنس) في جدول التفاصيل,لانه كل موظف له جنس واحد فقط.

كذلك الامر ينطبق على الاولاد,و اما الطلبة فما ادري ما المقصود منه؟

على كل حال إذا كان الامر يتعلق بما يعرف بالجداول المساعدة lookup tables فهي سهله للغاية

شاهد النصوص البرمجية التي تربط جدول مساعد بالقيمة المرئية كعرض و القيمة المحفوظة Value في الجدول المحتضن من قبل DataGridView

  Private Sub CustomizeTrainingItemRepeatDataGridView()

		Try

			Dim RepeatVTextBoxColumn As New DataGridViewComboBoxColumn
			Dim TrainingSetVTextBoxColumn As New DataGridViewTextBoxColumn
			Dim ToolPicViewImageColumn As New DataGridViewImageColumn
			Dim ToolCheckBox As New DataGridViewCheckBoxColumn

			With TrainingItemRepeatsDataGridView

				.DataBindings.Clear()

				.BackgroundColor = Color.Beige


				.DataSource = Me.TrainingItemRepeatsBindingSource

				'Clear Columns Before Adding Method.
				.Columns.Clear()

				.EnableHeadersVisualStyles = True

				'Prevent user deletion
				.AllowUserToDeleteRows = False
				.AllowUserToOrderColumns = False
				.AllowUserToResizeColumns = False
				.AllowUserToResizeRows = False
				.RowHeadersWidth = 40
				.RowTemplate.Height = 40

				'Add appropriate columns
				.Columns.AddRange( _
							New System.Windows.Forms.DataGridViewColumn() { _
							RepeatVTextBoxColumn, _
							TrainingSetVTextBoxColumn, _
							ToolPicViewImageColumn, _
							ToolCheckBox})

			End With


			With RepeatVTextBoxColumn
				.DataPropertyName = "Repeat"
				.HeaderText = "التكرار"
				.Name = "RepeatVTextBoxColumn"
				.Width = 50
				.DataSource = LPTrainingItemRepeatsBindingSource
				.DisplayMember = "TrainingRepeat"
				.ValueMember = "ID"
				.DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing
				.AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells
			End With


			With TrainingSetVTextBoxColumn
				.DataPropertyName = "TrainingSet"
				.HeaderText = "الجلسات"
				.Name = "TrainingSetVTextBoxColumn"
				.Width = 50
				.AutoSizeMode = DataGridViewAutoSizeColumnMode.NotSet
				End With


			With ToolPicViewImageColumn
				.DataPropertyName = "ToolPic"
				.HeaderText = "الأداة"
				.Name = "ToolPicViewImageColumn"
				.Width = 60
				.ImageLayout = DataGridViewImageCellLayout.Stretch
				.DefaultCellStyle.NullValue = Nothing
				.AutoSizeMode = DataGridViewAutoSizeColumnMode.NotSet
				End With

			With ToolCheckBox
				.HeaderText = "إضافة"
				.Name = "ToolCheckBox"
				.Width = 50
			End With

		Catch ex As Exception
			MsgBox(ex.Message)
		End Try

	End Sub

كما تلاحظ العامود الاول يحتضن قائمة منسدلة ComboBox وهو متصل بالـ BindingSource ذو الاسم LPTrainingItemRepeatsBindingSource

أما إذا كنت تريد أن تربط جدولين كقيمة معروضة في DataGridView فهي لا تدعم ذلك بشكل مباشر ولكن يمكنك الاستفادة من JoinView

المقالة الموجودة على العنوان التالي: إليك ذلك

موفق إن شاء الله.

في المثال يتضح المقال

#6

لحظه من فضلكم ..

المعذره اريد ان اتعلم من هذا المثال ولا اعمل على sql ولذلك قمت بنسخ Microsoft SQL Server 2005 الذي يأتي vb.net 2005 لان الكثير من الأمثله تتعامل مع SQL ، هل توضحون لي كيف اعمل Query Analyzer كي استفيد من هذا المثال ..

1 - سقوط الإنسان ليس فشلاً ، ولكن الفشل أن يبقى حيث سقط .

2 - الفاشلون قسمان : قسم فكر ولم يفعل ، وقسم فعل ولم يفكر .

-------------------------------------------------------

درس في ADO.NET 2005, التعامل مع الجداول المترابطة في ado.net 2005

درس في الإجراءات الفرعية ( العامة )

درس في ADO.NET من الصفر إلى الإحتراف .

#7

عزيزي لا أرد كود SQL حتى تستخدم Query Analyzer لتقيم كفاءة الكود.

النصوص المعروضة تبني DataGridView فقط.

السلام عليكم.

في المثال يتضح المقال

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

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