组合框中的内容不显示来自数据库的数据,但显示system.data.datarowview

时间:2019-04-07 12:23:56

标签: c# wpf

我正试图从数据库中获取数据以显示在组合框中,但它说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;
        }

1 个答案:

答案 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之后我概述的上述逻辑即可。

希望这能为您解决问题,如果尚不清楚,请不要犹豫,要求澄清。