PDA

View Full Version : سوال: مقدار Value بعد از انتخاب آیتم در ComboBox



mmbguide
جمعه 01 آذر 1392, 13:33 عصر
سلام به همه دوستان

وقتی فرم اصلی برنامه load میشه combobox با دستور زیر مقدار دهی میشه:
Me.comCustomers.DisplayMember = "CustomerName"
Me.comCustomers.ValueMember = "CustomerID"
Me.comCustomers.Items.Clear()
For Each customer In DBCustomers.GetAllCustomers
Me.comCustomers.Items.Add(customer)
Next
combo به درستی پُر میشه. حالا وقتی از SelectedValue استفاده میکنم هیچ مقداری رو برنمیگردونه. اما اگر از DataSet استفاده کنم این دستور درست کار میکنه. مشکل از چیه؟

ممنون

mmbguide
جمعه 01 آذر 1392, 13:55 عصر
این کد رو هم امتحان کردم باز هم جواب نداد
For Each customer As DBCustomers In DBCustomers.GetAllCustomers
Me.comCustomers.Items.Add(customer)
Next

mmbguide
شنبه 02 آذر 1392, 20:45 عصر
دوباره سلام

من از کدهای زیر هم استفاده کردم باز هم مشکل پابرجاست

Dim CustomersTA As New CustomersTableAdapter
Dim DS As New test2DataSet
CustomersTA.Fill(DS.Customers)
Dim CustomersRows As test2DataSet.CustomersRow
Me.ComboBox1.Items.Clear()
Me.ComboBox1.DisplayMember = "CustomerName"
Me.ComboBox1.ValueMember = "CustomerID"
For Each CustomersRows In DS.Customers.Rows
Me.ComboBox1.Items.Add(CustomersRows.CustomerName)
Next

فقط وقتی که از شیء Binding استفاده میکنم و اون رو روی ComboBox تنظیم میکنم میتونم Selected Value رو بدست بیارم. خواهشن راهنمایی کنید.

ممنون

mmbguide
یک شنبه 03 آذر 1392, 21:18 عصر
سلام دوستان

پاسخ سوال رو در سایت دیگر گرفتم

اینطور که پیداست SelectedValue در خصوص combobox فقط زمانی جواب میده که DataSource رو مقداردهی کنی. این مقدار باید یک DataTable باشد، حالا یا ا استفاده از کد نویسی و یا با استفاده از شیء Binding.
با این حال کد نهایی برای پُر کردن combobox که بشه از دستور SelectedValue استفاده کدر بصورت زیر می باشد:

Dim CustomersTA As New CustomersTableAdapter
Dim DS As New test2DataSet
CustomersTA.Fill(DS.Customers)
Dim CustomersRows As test2DataSet.CustomersRow
Dim DT As New DataTable
DT.Columns.Add("CustomerID", GetType(Integer))
DT.Columns.Add("CustomerName", GetType(String))
For Each CustomersRows In DS.Customers.Rows
DT.Rows.Add(CustomersRows.CustomerID, CustomersRows.CustomerName)
Next
Me.ComboBox1.DisplayMember = "CustomerName"
Me.ComboBox1.ValueMember = "CustomerID"
Me.ComboBox1.DataSource = DT

البته من از DataSet برای برقراری با جداول استفاده کردم که اگه دوست داشته باشید، با دستورات SQL هم میشه اینکارو کرد.

BITA6642
سه شنبه 05 بهمن 1395, 08:47 صبح
سلام دوستان
من همین مشکل رو دارم اما با entity frmework برای c# کدنویسی کردم
نمیتونم مقدار selected value که id هست رو بگیرم
کسی راه حلی داره
ممنون میشم راهنمایی کنید.