Как найти индекс - в таблице DATABASE - выбранного элемента в подключенном ComboBox

Найти выбранный элемент string в поле со списком очень просто:

String selectedString = comboBox1.SelectedItem.ToString();

Найти выбранный элемент index в поле со списком также легко:

int selectedIndex = comboBox1.SelectedIndex; 

Но поиск индекса в подключенной таблице базы данных выбранного элемента в поле со списком не кажется таким тривиальным:

    DataTable dt = new DataTable();
    SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM tblContacts ORDER BY colFirstname", sqlConnection);
    da.Fill(dt);
    for (int i = 0; i < dt.Rows.Count; i++)
    {
        String addressRow = (String)dt.Rows[i]["colFirstname"];
        comboBox1.Items.Add(addressRow);
    }

Я мог бы попытаться каким-то образом вывести индекс таблицы БД из выбранной строки элемента, но это не гарантирует уникальности.

Как правильно найти индекс в подключенной таблице базы данных выбранного элемента в поле со списком?


person Not So Sharp    schedule 17.10.2012    source источник


Ответы (1)


Выбранный вами индекс со списком является индексом в DataTable.

person Nikhil Agrawal    schedule 17.10.2012
comment
Этот заказ запускается в базе данных. Таким образом, полученные данные уже отсортированы. Теперь эта таблица данных зациклена, чтобы добавить данные в поле со списком. - person Nikhil Agrawal; 17.10.2012
comment
Попался! int selectedIndexInTable = (int)dt.Rows[comboBox1.SelectedIndex]["colId"]; Спасибо +1. - person Not So Sharp; 17.10.2012
comment
Это предполагает, конечно, что для таблицы существует столбец INT IDENTITY. - person Not So Sharp; 17.10.2012