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

سؤال فى الداتا جريد

مغلق
بدأه kareemovitch في 11 يناير 2007 · 6 رد · 1,306 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اخوانى المبرمجين

هو سؤال سهل لحضراتكم بش انا مبتدىء فى الدوت نت

كنت عايز اعرف ازاى اعمل كومبو بوكس و نيوميريك اب داون كى داخل خلايا الداتا جريد

وكيف اجعل الكومبو يقرأ من جدول اخر

ارجو الرد يا اخوانى المبرمجين

#2

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

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

أخي الكريم بالنسبة لأدخال ComboBox داخل DataGridView ومن جدول أخر هو كالتالي ...

 With ClmTrdNo
				.DataPropertyName = "TrdNo"
				.HeaderText = "اسم الدواء"
				.Name = "ClmTrdNo"
				.DataSource = Me.TradeMedicineBindingSource
				.DisplayMember = "TrdName"
				.ValueMember = "TrdNo"
				.DisplayStyle = DataGridViewComboBoxDisplayStyle.DropDownButton
				.DropDownWidth = 30
				.AutoComplete = True
				.Width = 100
				.FlatStyle = FlatStyle.Flat
				.SortMode = DataGridViewColumnSortMode.NotSortable
				.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
				.AutoSizeMode = DataGridViewAutoSizeColumnMode.NotSet
				.ToolTipText = "يرجى أختيار إسم الدواء"
				.ReadOnly = False
			End With

وأي أيضاح بشان هذا الكود أنا مستعد لذلك ...

والسلام خير ختام

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

#3

شكرأ اخى فلسطينا على اهتمامك بى ولكنى اريد مزيد من التوضيح

يعنى انا لو عندى قاعدة بيانات اسمها clinic_db

والجدول اسمه medicine

والحقل اسمه sname

حيث اننى عندى خمس حقول فى الجدول اود اظهارهم فى الداتا جريد منهم الحقل sname الذى اود وضعه فى كومبو

ممكن توضحلى الكود على اساس انى اود اظهار الخمس حقول ويكون من ضمنهم الحقل sname داخل الكومبو

الحقول هى

,sname,datevisit,section_name,diagnosis,medicine

حيث انى توصلت الى هذا الكود ولكنه لم يعمل

Try

Dim StoreColumn As New DataGridViewComboBoxColumn

'Assign datagridview properties.

With db1

.DataSource = dS.Tables("medicine")

.RowHeadersWidth = 20

.RowTemplate.Height = 25

.AllowUserToDeleteRows = False

.Columns.Clear()

.Columns.AddRange( _

New System.Windows.Forms.DataGridViewColumn() { _

StoreColumn})

End With

'Assign store column properties.

With StoreColumn

.DataPropertyName = "medicine"

.HeaderText = "name"

.Name = "sname"

.Width = 150

.DataSource = dS.Tables("medicine")

.DisplayMember = "sname"

.ValueMember = "id_num"

.DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing

End With

Catch ex As Exception

MsgBox(ex.Message)

End Try

ارجو الايضاح واكون شاكرا لو ارفقت مثال على هذا حيث انى مازلت مبتدىء

والى الامام يا اخ فلسطينا

#4

ارجو المساعده يا اخوانى

#5

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

ما هو أسمى الجدول الأخر الذي تريد أن تستدعي منه القيمة التي تريد عرضها في جدول Medicine يعني اللي بدنا نسدنها الى الخاصية DisplayMember والخاصية valueMember هي القيمة الفعلية المستخدمة الخاصية DataPropertyName تأخذ قيمة الحقل الحالية المخصصة إلى العمود الذي أنت عامل له binding يعني بتكون كالتالي ...

Private Sub CustomizeDataGridView()
		Try
			With DataGridView1
				.DataBindings.Clear()
				.AutoGenerateColumns = False
				.BackgroundColor = Color.Beige
				.DataSource = Me.ProductsTableAdapterBindingSource
				.Columns.Clear()
				.SelectionMode = DataGridViewSelectionMode.FullRowSelect
				.MultiSelect = False
				.EnableHeadersVisualStyles = True
				.AllowUserToAddRows = False
				.AllowUserToOrderColumns = False
				.AllowUserToResizeColumns = False
				.AllowUserToResizeRows = False
				.AutoGenerateColumns = False
				.AutoSize = True
				.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing
				.ColumnHeadersHeight = 30
				.AllowUserToDeleteRows = True
				.RowsDefaultCellStyle.BackColor = Color.Bisque
				.AlternatingRowsDefaultCellStyle.BackColor = Color.Beige
				.DefaultCellStyle.WrapMode = DataGridViewTriState.True
				'  Resize the DataGridView columns to fit the newly loaded content.
				.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCellsExceptHeader)
				.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithoutHeaderText
				'Add appropriate columns
				.Columns.AddRange(New System.Windows.Forms.DataGridViewColumn() {ClmProdId, ClmProdName, _
								   ClmSuppLierID, CategoryID, ClmQuantityPerUnit, ClmUnitPrice, ClmUnitsInStock})

			End With

			With ClmProdId
				.DataPropertyName = "ProductId"
				.HeaderText = "مسلسل"
				.Visible = False
				.Name = "ClmProdId"

				.ReadOnly = True
			End With

			With ClmProdName
				.DataPropertyName = "ProductName"
				.HeaderText = "اسم المنتج"
				.Visible = False
				.Name = "ClmProdName"
				.ReadOnly = False
			End With
			With ClmSuppLierID
				.DataPropertyName = "SupplierID"
				.HeaderText = "رقم المورد  "
				.Name = "ClmSuppLierID"
				.Width = 100
				.SortMode = DataGridViewColumnSortMode.NotSortable
				.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
				.AutoSizeMode = DataGridViewAutoSizeColumnMode.NotSet
				.ReadOnly = False
			End With

			'لاحظ هنا 
			With CategoryID
				.HeaderText = "التصنيف"
				.Name = "ClmCategoryName"
				.DataPropertyName = "CategoryID"
				.DataSource = Me.CategoriesBindingSource
				.DisplayMember = "CategoryName"
				.ValueMember = "CategoryID"
				.DisplayStyle = DataGridViewComboBoxDisplayStyle.DropDownButton
				.DropDownWidth = 30
				.AutoComplete = True
				.Width = 100
				.FlatStyle = FlatStyle.Flat
				.SortMode = DataGridViewColumnSortMode.NotSortable
				.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
				.AutoSizeMode = DataGridViewAutoSizeColumnMode.NotSet
			End With

			With ClmQuantityPerUnit
				.HeaderText = "الكمية   "
				.DataPropertyName = "QuantityPerUnit"
				.Name = "ClmQuantityPerUnit"
				.Width = 100
				.SortMode = DataGridViewColumnSortMode.NotSortable
				.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
				.AutoSizeMode = DataGridViewAutoSizeColumnMode.NotSet
				.ReadOnly = True
			End With

			With ClmUnitPrice
				.HeaderText = "سعر الوحدة   "
				.DataPropertyName = "UnitPrice"
				.Name = "ClmUnitPrice"
				.Width = 100
				.SortMode = DataGridViewColumnSortMode.NotSortable
				.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
				.AutoSizeMode = DataGridViewAutoSizeColumnMode.NotSet
				.ReadOnly = True
			End With

			With ClmUnitsInStock
				.DataPropertyName = "UnitsInStock"
				.HeaderText = "الوحدات الموجودة بالمخزن"
				.Name = "ClmUnitsInStock"
				.Width = 100
				.SortMode = DataGridViewColumnSortMode.NotSortable
				.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
				.AutoSizeMode = DataGridViewAutoSizeColumnMode.NotSet
				.ReadOnly = False
			End With

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

	End Sub


#End Region

والسلام خير ختااام

DataGridViewComboxbox.zip

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

#6

مجهود رائع يا اخ فلسطينا

بس البرنامج ما فتحشى معايا

يعطينى الرساله التاليه

An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)

على العموم اشكرك على تعبك معايا بس انا مبتدىء فى الدوت نت وبحاول افهم

ما هى ProductsTableAdapterBindingSource

وما هى وظيفته

وما هم .DisplayMember

.ValueMember

وما هى وظيفتهم

ارجو ان لا اكون اثيقلت عليك

والى الامام يا اخ فلسطينا

#7

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

أذهب إلى خصائص المشروع الحالي و Right Click Mouse وبعد ذلك الذهاب إلى settings ومن ثم الذهاب إلى

أعدادات المشروع الحالي حيث ستجد خانة Value الخاصة بالمشروع اضغط على Button الخاص بالاتصال مع db وغير الاسم إلى أسم جهازك

ValueMemeber القيمة الفعلية المستخدمة.

Displaymember هي القيمة التي تريد أنت أظهارها للمستخدم .

BindingSource أذهب لمحرك البحث الخاص بالموقع وستجد ان شاء الله عنه

او بامكانك تحميله من هنا

DataGridViewComboxbox.zip

تم تعديل هذه المشاركة بواسطة فلسطيننا في 14 يناير 2007 في 11:09

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

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

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