我從數據庫中獲取數據來填充我的組合框,所以可以說我有數據是這樣的:組合框中選擇項目,但顯示的名稱
|Column ID | Column Name |
| 1 | Item1 |
| 2 | Item2 |
| 3 | Item3 |
所以現在我得到Column Name
和填充組合盒子,但現在從一些其他功能,我正在改變組合框選定的項目,我想要的是當填充組合框來從數據庫分配ID,所以當我說要更改組合框選定項目ID 3,它更改爲項目3
我從數據庫中獲取數據來填充我的組合框,所以可以說我有數據是這樣的:組合框中選擇項目,但顯示的名稱
|Column ID | Column Name |
| 1 | Item1 |
| 2 | Item2 |
| 3 | Item3 |
所以現在我得到Column Name
和填充組合盒子,但現在從一些其他功能,我正在改變組合框選定的項目,我想要的是當填充組合框來從數據庫分配ID,所以當我說要更改組合框選定項目ID 3,它更改爲項目3
我覺得它。下面是答案:
divizija.DisplayMember = "Column Name";
divizija.ValueMember = "Column Id";
List<Items> items = new List<Items>();
FbDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
items.Add(new Items { Id = (int)dr[0], Name = (string)dr[1]});
}
divizija.DataSource = items;
divizija.SelectedValue = divizijaDokumenta;
而對於項目清單,我需要類這裏是
public class Items
{
public int Id { get; set; }
public string Name { get; set; }
}
你不需要一個類或創建從數據庫數據的列表。一個DataTable
會工作得很好:
string sql = "SELECT Id, Descr FROM ccolor";
using (MySqlConnection dbcon = new MySqlConnection(MySQLConnStr))
using (MySqlCommand cmd = new MySqlCommand(sql, dbcon))
{
DataTable dt = new DataTable();
dbcon.Open();
// fill the datatable
dt.Load(cmd.ExecuteReader());
// set up cbo
cboColor.DisplayMember = "Descr";
cboColor.ValueMember = "Id";
cboColor.DataSource = dt;
}
它並不甚至需要一個持久的表。然後,應對SelectedValueChanged
事件:
Console.WriteLine("The value of {0} is {1}", cboColor.Text, cboColor.SelectedValue);
橙色的值是5
'.DisplayMember = 「名稱」'和'.ValueMember = 「ID」' – Plutonix
@Plutonix你能更加詳細一些? – Parpil
使用帶有DB值的數據表作爲數據源 – Plutonix