簡體   English   中英

C#-用MySql數據庫填充ComboBox的意外結果

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM