2016-10-24 193 views
0

我知道這可能已被問及之前回答。但我不能在我的問題中使用它們,因爲我剛剛接觸wpf並在c#中連接數據庫。使用另一個組合框選定的項目填充組合框,WPF

這是問題:我有一個MySQL數據庫,它的表有2列國家和地區。我從組合框中選擇國家,這很好。我想根據國家選擇地區。我使用2個組合框來選擇國家和地區。

仍然我不能加載區當我選擇一個國家。我想我的SQL字符串和WPF事件處理可能會引發這個問題。

  string new_student_sql = "SELECT Id,Name FROM world.city WHERE 
     CountryCode = '"; 

     string connectionStr = new_student_sql + comboBoxCountry.Text + 
     "' AND District= '" + comboBoxDistrict.Text + "'"; 


     MySqlCommand newStudent = new MySqlCommand(connectionStr, conn); 
     newStudent.CommandText = connectionStr; 
     conn.Open(); 
     DataTable dt = new DataTable(); 
     dt.Load(newStudent.ExecuteReader()); 
     conn.Close(); 
     dataGrid.DataContext = dt; 
     MessageBox.Show(connectionStr); 

我將combobox作爲國家值獲取爲comboBoxCountry.Text。但是當我在上面列出的comboBoxDistrict選擇更改方法中給出該值時,我會在區域中獲得空的組合框。

我應該如何根據第一個選擇填充它們。任何建議和代碼示例都會非常感謝。 在此先感謝。

+0

您可以驗證您的區域查詢是否實際返回結果嗎? 如果確實返回結果,請檢查您所在區域組合框的數據綁定(方向)。從源代碼或雙向更新。 – ISAF

+0

@ISAF不會返回任何東西。 – Mlarnt90

+0

@ISAF的東西是這個comboBoxCountry.text字符串不能用這個方法識別 – Mlarnt90

回答

0

嗯,我想通了。其實這是一個愚蠢的錯誤。我忘記了在countryselectionchange事件方法中調用comboBoxDistrict方法。由於這個錯誤,地區不會得到更新。此外,而不是comboBoxDistrict.Text使用comboBoxDistrict.SelectedValue獲得所選擇的價值和使用變量爲而不是做

   string connectionStr = new_student_sql + comboBoxCountry.Text + 
       "' AND District= '" + comboBoxDistrict.Text + "'"; 

使用varible,

   String country= comboBoxCountry.SelectedValue.ToString(); 

,使其更易於使用。 感謝任何試圖解決這個問題的人,並將我引導到MVVM模式,我一定會投注。