2016-12-15 63 views
0

我從數據庫中獲取數據來填充我的組合框,所以可以說我有數據是這樣的:組合框中選擇項目,但顯示的名稱

|Column ID | Column Name | 
|  1 |  Item1 | 
|  2 |  Item2 | 
|  3 |  Item3 | 

所以現在我得到Column Name和填充組合盒子,但現在從一些其他功能,我正在改變組合框選定的項目,我想要的是當填充組合框來從數據庫分配ID,所以當我說要更改組合框選定項目ID 3,它更改爲項目3

+1

'.DisplayMember = 「名稱」'和'.ValueMember = 「ID」' – Plutonix

+0

@Plutonix你能更加詳細一些? – Parpil

+0

使用帶有DB值的數據表作爲數據源 – Plutonix

回答

0

我覺得它。下面是答案:

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; } 
} 
0

你不需要一個類或創建從數據庫數據的列表。一個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