我正在尝试使用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}" />
有什么想法吗?
答案 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"));