我有windows表单项目。我正在使用组合框来填充数据库中的一些数据。 Combobox正在正确显示表中的数据,但问题是当我试图获取所选文本的文本值时,它显示空值。 这是代码
private void Form1_Load(object sender, EventArgs e)
{
loadCombobox("select designation, id from post order by id", txtDesignation, "designation", "id");
}
private void loadCombobox(string query, ComboBox name, string itemField, string valueField)
{
using(SqlConnection conn = new SqlConnection("Server=.\\SQLEXPRESS;Database=FIR_db; User Id = sa; Password = 9889922527"))
{
try
{
SqlDataAdapter sda = new SqlDataAdapter(query, conn);
conn.Open();
DataSet ds = new DataSet();
sda.Fill(ds, "post");
name.DisplayMember = itemField;
name.ValueMember = valueField;
name.DataSource = ds.Tables["post"];
}
catch (SqlException exc)
{
DialogResult dr = MessageBox.Show("Error in server. Could not load Designation.", "Error in server", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
private void txtDesignation_SelectedIndexChanged(object sender, EventArgs e)
{
DialogResult dr = MessageBox.Show(txtDesignation.SelectedText.ToString(), "Error in server", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
此项目位于.net 4
答案 0 :(得分:1)
SelectedText只是控件中任何文本的突出显示部分。
由于您已设置ValueMember,请尝试使用SelectedValue属性。
答案 1 :(得分:1)
您要访问的是comboBox.SelectedItem
属性。
修改强>
从您的评论中看起来您正在使用ComboBox
对象填充DataRowView
。因此,您可能必须从行视图中获取您感兴趣的值。试试这个:
dataRowView.Row["ColumnName"]
其中dataRowView
是ComboBox
中您选择的项目。您可能需要将其投射到DataRowView
。