Поле со списком WPF заполняет данные из базы данных MySQL - PullRequest
0 голосов
/ 16 ноября 2011

Я пытаюсь заполнить поле со списком данными, но не могу заставить его работать

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 Ответ

1 голос
/ 16 ноября 2011

вам нужно будет получить доступ к 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)
     }
}

EDIT:

я использую такой же метод, но с базой данных 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()); 
       }

теперь вы заполнили свой комбинированный список

...