2011-11-16 118 views
0

我試圖用數據填充組合框,但我不能得到它的工作WPF組合框從MySQL數據庫填充數據

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.I想填充一個名爲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

您需要存取權限DT,我不知道,如果你打電話給你fillzone僅用於填充組合框,但我建議:

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) 
    } 
} 

編輯:使用同一種方法

IM,但第i個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 

字符串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()); 
     } 

現在你填入你的組合框

+0

着FINT DATACELL命名空間。它在哪個命名空間中。 Iam獲取參考錯誤 –

+0

我正在使用wpf,並且該應用程序不是基於Web的。請詳細說明 –

+0

您是否在編輯後檢查了我的答案? – Moonlight