我刚刚将我的组合框绑定到数据库,但它没有显示我的值。但是,我可以通过下拉框的长度看到值在其中但是不可见。
我只是点击一个值,它确实有效并带我到下一个表格。但是,如何才能使这些值可见?
private void StudentLogin_Load(object sender, EventArgs e)
{
con = new SqlConnection(constr);
con.Open();
cmd = new SqlCommand("select Std_ID from Student", con);
SqlDataReader reader;
reader = cmd.ExecuteReader();
DataTable dt = new DataTable();
dt.Columns.Add("Std_ID", typeof(string));
dt.Columns.Add("Name", typeof(string));
dt.Load(reader);
metroComboBox1.ValueMember = "Std_ID";
metroComboBox1.DisplayMember = "Name";
metroComboBox1.DataSource = dt;
con.Close();
}
private void metroComboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
string ID = metroComboBox1.SelectedValue.ToString();
}
答案 0 :(得分:2)
metroComboBox1.DataSource = dt;
metroComboBox1.ValueMember = "Std_ID";
metroComboBox1.DisplayMember = "Name";
metroComboBox1.DataBind();
答案 1 :(得分:1)
我认为问题出在您的查询中:
cmd = new SqlCommand("select Std_ID from Student", con);
不包含名称。而是尝试以下方法:
cmd = new SqlCommand("select Std_ID, Name from Student", con);
为了显示ID而不是名称,也将Std_ID作为displaymamber。