私はコンボボックスをデータベースにバインドしましたが、値が表示されません。しかし、私はドロップダウンボックスの長さによって、その中に値が入っていても見えないことがわかります。バインド後にコンボボックスにテキストが表示されない
値をクリックしただけで機能し、次のフォームに移りました。しかし、これらの値をどのように見えるようにすることができますか?
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();
}
あなたは '.DataBind()'メソッドを呼び出してみましたか?これはどんなアプリケーションですか?なぜDataReaderを使用してDataTableにデータを格納していますか?アダプターはなぜですか? –
私は問題があなたの質問にあると思います:cmd = new SqlCommand( "select Std_ID from Student"、con);名前を含んでいません。 cmd = new SqlCommand( "select Std_ID、Studentからの名前"、con); – Tyron78
これはWindowsフォームアプリケーションです。私はdatabindを使用する必要がある場合、私はちょうどそのプロパティを使用してデータベースに直接コンボボックスを接続することができますが、私はコードを記述し、Selectクエリを使用してデータベースからデータを読み取ることによってこれを行うことにしました。 – Ahsan