[英]C# - unexpected result in populating ComboBox with MySql database
在我的類DBConnect
,我具有基於輸入查詢將ComboBox填充到數據庫的功能:
public void POPULATE_COMBOBOX(string query, ComboBox myComboBox)
{
if (this.OpenConnection() == true)
{
MySqlCommand cmd = new MySqlCommand(query, connection);
MySqlDataAdapter adapter = new MySqlDataAdapter(cmd);
DataTable myDataTable = new DataTable();
adapter.Fill(myDataTable);
myComboBox.DataSource = myDataTable;
this.CloseConnection();
}
}
這就是我的使用方式
DBConnect.POPULATE_COMBOBOX(“來自用戶的選擇名稱”,comboBox_Name);
我在“ NAME
列中有3行,我希望這3個名稱將顯示在我的comboBox_Name
。 但是,相反,我的組合框中有3行System.Data.DataRowView
。 任何想法如何將那些DataRowView轉換為字符串?
您必須告訴組合框要顯示的列。
//Preparation
var dt = new DataTable();
dt.Columns.Add("Name", typeof(string));
dt.Rows.Add("Name1");
dt.Rows.Add("Name2");
//Setup data binding
myComboBox.DataSource = dt.DefaultView;
myComboBox.DisplayMember = "Name";
myComboBox.ValueMember = "Name";
然后, SelectedItem
獲取實際的ComboBox項(在本例中為DataRowView),而SelectedValue
獲取您指定為ComboBox的ValueMember的屬性的值
或如何填充您的ComboBox
另一種方法是:
MySqlDataReader sqlReader = cmd.ExecuteReader();
while (sqlReader.Read())
{
myComboBox.Items.Add(sqlReader["Name"].ToString());
}
sqlReader.Close();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.