首页 > 解决方案 > 在 c# WPF 中从 oracle 数据库加载组合框

问题描述

我正在尝试用 Oracle 数据库填充组合框,但我是 WPF 的新手。我错过了什么?C# :

private void combonacionalidad_Loaded(object sender, RoutedEventArgs e)
    {
        ora.Open();
        OracleCommand comm = new OracleCommand("select idnacionalidad, nacionalidad from nacionalidad ", ora);
        comm.CommandType = System.Data.CommandType.Text;

        OracleDataAdapter oda = new OracleDataAdapter(comm);

        DataSet ds = new DataSet();

        oda.Fill(ds);
        combonacionalidad.DisplayMemberPath = "nacionalidad";
        combonacionalidad.SelectedValuePath = "idnacionalidad";
    }

XAML:

<ComboBox x:Name="combonacionalidad" HorizontalAlignment="Left" Margin="520,76,0,0" VerticalAlignment="Top" Width="110" Loaded="combonacionalidad_Loaded"/>

标签: c#databasewpforaclex11

解决方案


您必须先将属性绑定combonacionalidad.ItemSource到要使用的数据才能使用DisplayMemberPathSelectedValuePath属性。使用这个问题作为信息来源,我稍微修改了你的代码,看看它是否像这样工作:

private void combonacionalidad_Loaded(object sender, RoutedEventArgs e)
{
    ora.Open();
    OracleCommand comm = new OracleCommand("select idnacionalidad, nacionalidad from nacionalidad ", ora);
    comm.CommandType = System.Data.CommandType.Text;

    OracleDataAdapter oda = new OracleDataAdapter(comm);

    DataTable dt = new DataTable();
    oda.Fill(dt);
    combonacionalidad.ItemsSource = dt.AsDataView();
    combonacionalidad.DisplayMemberPath = "nacionalidad";
    combonacionalidad.SelectedValuePath = "idnacionalidad";
}

推荐阅读