简体   繁体   中英

Set SelectedValue in combobox that populated from Data Table in c#?

I have a Combobox in my form. This Combobox is populated with values from a table(Faculty) in the database.

I need to set the SelectedValue of this Combobox based on the record in another table(student). Both tables are in the same database.

I tried to set SelectedValue using the value getting from student table

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

but it didn't work.

So far I was only able to populate the 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"));
    }
}

but unable to set 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();

Hoping to fix the issue.


EDIT:

Able to do that by finding the item that exactly matches the specified string ComboBox.FindStringExact Method ,

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

needed to be replaced with

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

Are there any other ways to archieve this.

Able to do that by finding the item that exactly matches the specified string ComboBox.FindStringExact Method ,

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

needed to be replaced with

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM