将WPF Combobox与Postgres数据库值链接

时间:2016-01-13 23:37:29

标签: c# wpf postgresql combobox

我正在尝试使用postgres数据库中的数据填充组合框,但我无法使其工作。

C#代码:

private void fill_combo()
{
    string CommandText = "select ida from antenne";
    using (NpgsqlConnection sqlConn = new NpgsqlConnection("server=localhost;port=5432;user=postgres;pwd=password;database=BDTelecom"))
    {
        sqlConn.Open();
        NpgsqlCommand sqlCmd = new NpgsqlCommand(CommandText, sqlConn);
        NpgsqlDataAdapter da = new NpgsqlDataAdapter(sqlCmd);
        DataTable dt = new DataTable();
        da.Fill(dt);
        comboBox.Text = "ida";
    }
}

XAML代码:

<ComboBox x:Name="comboBox"
          HorizontalAlignment="Left" Height="23" VerticalAlignment="Top" Width="170"
          ItemsSource="{Binding}" />

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您正在检索数据,但是您没有将其分配给ComboBox

指定dt作为来源,并设置您希望用户查看的列名称。

...
da.Fill(dt);
comboBox.ItemsSource = dt.DefaultView;
comboBox.DisplayMemberPath = "ida";

答案 1 :(得分:1)

假设数据表中的字段名称(数据库中列的名称)为"ida"且类型为string,则需要执行以下操作:

comboBox.ItemsSource =
    dt.Rows
    .Cast<DataRow>()
    .Select(x => x.Field<string>("ida"));