我正试图从数据库中获取数据以显示在组合框中,但它说system.data.datarowview可以代替别人。
public DataView GetAllCountries()
{
connection.Open();
MySqlCommand command = connection.CreateCommand();
command.CommandText = "select partij from partijen";
MySqlDataReader reader = command.ExecuteReader();
DataTable dtData = new DataTable();
dtData.Load(reader);
connection.Close();
return dtData.DefaultView;
}
答案 0 :(得分:0)
在how to bind ComboBox with DataTable
的帮助下由于无法完全复制您的环境,因此我继续在内存中创建了自己的数据表。
DataTable dt = new DataTable("Countries");
dt.Columns.Add(new DataColumn("CountryName"));
DataRow australia = dt.NewRow();
australia["CountryName"] = "Australia";
dt.Rows.Add(australia);
DataRow japan = dt.NewRow();
japan["CountryName"] = "Japan";
dt.Rows.Add(japan);
cmbAllData.DisplayMemberPath = "CountryName";
cmbAllData.SelectedValuePath = "Australia";
cmbAllData.ItemsSource = dt.DefaultView;
因此,这里的关键似乎是设置DisplayMemberPath和SelectedValuePath以及ComboBox.ItemSource。完成此操作后,“ system.data.datarowview”不再显示,您将看到数据表的基础行。
您将返回DefaultView,这是可以的,您只需要实现调用GetAllCountries之后我概述的上述逻辑即可。
希望这能为您解决问题,如果尚不清楚,请不要犹豫,要求澄清。