i我的类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转换为字符串?
您必须告诉ComboBox显示哪个列。
//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
获取实际的组合项目(在这种情况下为datarowview),而 SelectedValue
获取了您指定为combobox
或另一种方法填充ComboBox
的方法是:
MySqlDataReader sqlReader = cmd.ExecuteReader();
while (sqlReader.Read())
{
myComboBox.Items.Add(sqlReader["Name"].ToString());
}
sqlReader.Close();