我从数据库获取数据来填充我的组合框,所以假设我有这样的数据:
|Column ID | Column Name |
|        1 |       Item1 |
|        2 |       Item2 |
|        3 |       Item3 |现在我正在获取Column Name并用它填充组合框,但现在我从其他函数中更改了组合框选定项,我想要的是在填充组合框时从数据库中分配ID,因此当我说要将组合框选定项更改为ID 3时,它将更改为项3
发布于 2016-12-16 07:58:23
您不需要一个类,也不需要从数据库数据创建一个列表。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
发布于 2016-12-16 07:30:07
我猜到了。这就是答案:
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;对于项目列表,我需要class,它就在这里
public class Items
{
    public int Id { get; set; }
    public string Name { get; set; }
}https://stackoverflow.com/questions/41173203
复制相似问题