首页 > 解决方案 > 在从 C# 中的数据表填充的组合框中设置 SelectedValue?

问题描述

我的表单中有一个组合框。此组合框由数据库中表(教师)中的值填充。

我需要SelectedValue根据另一个表(学生)中的记录来设置这个 Combobox 的值。两个表都在同一个数据库中。

我尝试SelectedValue使用从student表中获取的值进行设置

cmbfaculty.SelectedValue = table.Rows[0][1].ToString();

但它没有用。

到目前为止,我只能填充 Combobox ,

    // --- populate faculty cmb ---
MySqlCommand cmdCmb = new MySqlCommand("SELECT facultyname FROM faculty;", db.getConnection());
db.openConnection();    // open connection

using (var reader = cmdCmb.ExecuteReader())
{
    while (reader.Read())
    {
        cmbfaculty.Items.Add(reader.GetString("facultyname"));
    }
}

但无法设置SelectedValue

string sQuery = "SELECT indexno,faculty FROM student WHERE indexno ='"+selected+"'";
MySqlCommand cmd = new MySqlCommand(sQuery, db.getConnection());
MySqlDataAdapter adapter = new MySqlDataAdapter(cmd);
DataTable table = new DataTable();
adapter.Fill(table);

txtindex.Text = table.Rows[0][0].ToString();
cmbfaculty.SelectedValue = table.Rows[0][1].ToString();

希望能解决问题。


编辑:

能够通过找到与指定字符串完全匹配的项目来做到这一点ComboBox.FindStringExact Method

cmbfaculty.SelectedValue = table.Rows[0][1].ToString();

需要替换为

cmbfaculty.SelectedIndex = cmbfaculty.FindStringExact(table.Rows[0][1].ToString()) ;

有没有其他方法来归档这个。

标签: c#.net

解决方案


能够通过找到与指定字符串完全匹配的项目来做到这一点ComboBox.FindStringExact Method

cmbfaculty.SelectedValue = table.Rows[0][1].ToString();

需要替换为

cmbfaculty.SelectedIndex = cmbfaculty.FindStringExact(table.Rows[0][1].ToString()) ;

推荐阅读