c# - 组合框按 ID 选择项目但显示名称

标签 c# sql winforms combobox

我正在从数据库获取数据来填充我的组合框,所以可以说我有这样的数据:

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

所以现在我正在获取列名称并用它填充组合框,但现在从其他一些功能我正在更改组合框选定的项目,我想要的是在填充组合框时分配ID数据库,因此当我说将组合框所选项目更改为 ID 3 时,它会更改为项目 3

最佳答案

您不需要类或从数据库数据创建列表。 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);

The value of orange is 5

关于c# - 组合框按 ID 选择项目但显示名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41173203/

相关文章:

c# - 如何只删除表中最前面的记录?

mysql - 每周观看次数

java - Android sqlite insert 没有插入

c# - 轮询网络服务

单击 C# Form X 按钮

c# - 在哪里可以找到模仿 iTunes 堆栈/填充/进度条的 WinForms 控件?

c# - 保证 C# 中的不变性

c# - 如何在数据库表中添加刚刚删除的ID

mysql - 映射(连接)创建表不允许外键?

c# - 如何检查输入的十进制值是否大于十进制列表