Как получить данные в comboBox C # - PullRequest
5 голосов
/ 18 июля 2011

У меня есть поле со списком, и я заполнил его следующим образом:

DataTable dt = new DataTable();

using (SQLiteConnection conn = connection.Conn)
{               
    using (SQLiteCommand cmd = new SQLiteCommand(conn))
    {
        cmd.CommandText = "select id, description from category";
        conn.Open();

        using (SQLiteDataAdapter da = new SQLiteDataAdapter(cmd))
        {
            da.Fill(dtChargeCodes);
            comboBox1.DataSource = dt;
            comboBox1.DisplayMember = "description";
            comboBox1.ValueMember = "id";
        }                                       
    }               
}

Я пытаюсь получить данные выбранного элемента в поле со списком, но при попытке отобразить их с помощью MessageBox.Show(comboBox1.SelectedItem.ToString()); получаю тип System.Data.DataRowView., а не фактическое значение описания поля в таблице категории. Пожалуйста, помогите ... спасибо.

Ответы [ 5 ]

6 голосов
/ 18 июля 2011

Либо используйте

comboBox1.SelectedText

или

((System.Data.DataRowView)(comboBox1.SelectedItem))["description"]

Вам может понадобиться использовать второй метод, если вам нужно получить доступ к значению в событии SelectedIndexChanged (см. здесь )

5 голосов
/ 18 июля 2011

Попробуйте это:

MessageBox.Show(comboBox1.SelectedValue);
2 голосов
/ 18 июля 2011

Если вы ищете экранное значение, используйте это:

MessageBox.Show(combobox1.SelectedText);
2 голосов
/ 18 июля 2011

Я думаю, что вам нужно

MessageBox.Show(comboBox1.SelectedItem.Value.ToString())
1 голос
/ 18 июля 2011

Некоторое объяснение:

MessageBox.Show(comboBox1.SelectedValue.ToString()); //get selected item value
MessageBox.Show(comboBox1.Text); //get selected item text
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...