[英]Select combo box item
我有個問題。 我在組合框中顯示來自數據庫的數據。 我選擇了3列:學生ID,姓氏,課程,這些列顯示在下拉菜單中。 選擇項目時,是否可能只顯示組合框中的一列,例如僅顯示StudentID?
謝謝,
馬可
private void Form2_Load(object sender, EventArgs e)
{
connection.Open();
OleDbCommand command = new OleDbCommand();
command.Connection = connection;
command.CommandText = "SELECT StudentID, Surname, Course FROM Students";
OleDbDataReader reader = command.ExecuteReader();
while(reader.Read())
{
comboBox1.Items.Add(reader[0].ToString() + " " + reader[1].ToString() + " " + reader[2].ToString());
}
connection.Close();
}
當您說選擇時,您是否仍想將所有三個都放在列表的一部分,而只顯示ID? 您不僅可以添加閱讀器中的第一項嗎?
private void Form2_Load(object sender, EventArgs e)
{
connection.Open();
OleDbCommand command = new OleDbCommand();
command.Connection = connection;
command.CommandText = "SELECT StudentID, Surname, Course FROM Students";
OleDbDataReader reader = command.ExecuteReader();
while(reader.Read())
{
comboBox1.Items.Add(reader[0].ToString());
}
connection.Close();
}
編輯:
您需要為此創建一個對象,如下所示
private class Student
{
public string Name;
public int Id
public Student(string name, int id)
{
Name = name;
Id = id;
}
//override the tostring to change how it is displayed in the combobox
public override string ToString()
{
return Name + " " + Id.ToString();
}
}
comboBox1.Items.Add(new Student(reader[1].ToString(), reader[0].ToString()));
如果我理解得很好,您只想顯示StudentID字段,但仍想選擇此ID的時間,可以使用查詢中的其他字段,如果這是您的目標,則可以采用幾種路徑,例如如下:
comboBox1.Items.Add(drd["0"].ToString());
comboBox1.ValueMember = drd["0"].ToString();
comboBox1.DisplayMember = drd["1"].ToString();
因此您可以恢復一些信息,但是即使如此,您仍然需要進行所有的咨詢,只需分配添加對象,然后使用以下行comboBox1.DisplayMember = "field you want to display";
,選擇要在組合中查看的內容comboBox1.DisplayMember = "field you want to display";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.