我的表单中有一个组合框。此组合框填充有数据库(系)中表中的值。我需要基于同一数据库中另一个表(学生)中的记录来设置此组合框的SelectedValue
。到目前为止,我已经能够填充组合框,但无法设置SelectedValue
。
// --- 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"));
}
}
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();
此代码无法基于SelectValue
表的值设置student
。希望解决该问题。
能够通过找到与指定字符串ComboBox.FindStringExact Method
完全匹配的项来找到解决方案,>
cmbfaculty.SelectedValue = table.Rows[0][1].ToString();
需要替换为
cmbfaculty.SelectedIndex = cmbfaculty.FindStringExact(table.Rows[0][1].ToString()) ;