WPF组合框从mysql数据库填充数据

时间:2011-11-16 15:53:29

标签: c# .net mysql combobox

我正在尝试使用数据填充组合框但我无法正常工作

public void fillZone()
    {
        string sql = "select location from zone";
        MySqlDataAdapter zonedapter = new MySqlDataAdapter(sql,conn);
        DataTable dt = new DataTable("zone");
        zonedapter.Fill(dt);                

    }

我使用fillZone()从mysql获取数据并将其存储在dataTable中。我想用上面返回的结果填充名为zonecb的组合框,如下所示

this.zonecb.ItemsSource = "Location";
this.zonecb.DisplayMemberPath = "Location";

我的xml如下所示:

<ComboBox Canvas.Left="91" Canvas.Top="57" Height="23" Name="zonecb" Width="200" ItemsSource="{Binding}" />

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

你需要访问dt,我不知道你是否只是为了填充组合框而调用你的填充区,但我建议:

public DataTable fillZone()
{
    string sql = "select location from zone";
    MySqlDataAdapter zonedapter = new MySqlDataAdapter(sql,conn);
    DataTable dt = new DataTable("zone");
    zonedapter.Fill(dt);                
    return dt;
}

public void fillcombo()
{
     DataTable dt = fillZone();
     foreach (DataCell cell in dt)
     { 
       zonecb.add(cell.Value)
     }
}

编辑:

我使用相同类型的方法,但是使用postgreSql数据库,通过将PgsqlDataAdapter更改为MySqlDataAdapter,这可能/应该工作

    public DataSet GetInformation(string str)
    {
        ds = new DataSet("Tables");

        Npgsql.NpgsqlDataAdapter da = new Npgsql.NpgsqlDataAdapter(str, connection);

        da.TableMappings.Add("Table", "Program");
        da.Fill(ds);
        return ds;
    }// send query to database, get table

String str是您的查询。

    public DataTable GetInfo()
    {
        string Query = "select location from zone";
        DataSet Set = GetInformation(Query);
        return Set.Tables[0];
    }

现在你有了一张桌子,里面有你需要/想要的所有数据。

   DataTable DT = dBQuery.GetInfo();
   for (int i = 0; i < result.Rows.Count; i++) 
       {          
           zonecd.Items.Add(result.Rows[i].ItemArray[0].ToString()); 
       }

现在你填充了你的组合框