C# 如何在组合框C中获取数据

C# 如何在组合框C中获取数据,c#,winforms,C#,Winforms,我有一个组合框,我这样填充它: DataTable dt = new DataTable(); using (SQLiteConnection conn = connection.Conn) { using (SQLiteCommand cmd = new SQLiteCommand(conn)) { cmd.CommandText = "select id, description from category";

我有一个组合框,我这样填充它:

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.showcombox1.SelectedItem.ToString显示它时;我得到的是System.Data.DataRowView类型。不是表类别中字段说明的实际值。请帮忙。。。谢谢。

我想你需要

MessageBox.Show(comboBox1.SelectedItem.Value.ToString())
试试这个:

MessageBox.Show(comboBox1.SelectedValue);
一些解释:

MessageBox.Show(comboBox1.SelectedValue.ToString()); //get selected item value
MessageBox.Show(comboBox1.Text); //get selected item text

如果要查找屏幕值,请使用以下命令:

MessageBox.Show(combobox1.SelectedText);
任用

comboBox1.SelectedText


如果需要访问SelectedIndexChanged事件中的值,则可能需要使用第二种方法。请参见

我认为ComboBox.Selected没有值属性。我认为,问题是您正在获取该项。项目上应该有一些属性为您提供值。抱歉-我没有访问环境的权限来检查ATM。这将显示查询选择id、类别描述中的id值。不是描述……对不起,没有正确阅读问题。通常情况下,该值就是您要查找的值。请尝试Patrick McDonald的方法:注意:如果DropDownStyle设置为DropDownList,则返回值为空字符串。
((System.Data.DataRowView)(comboBox1.SelectedItem))["description"]