2014-04-13 40 views
1

我使用以下方法在程序啓動時用我的數據庫中的信息填充組合框。當我用它來填充一個組合框時它工作正常。但是如果我使用它來填充多個組合框,它將返回一個錯誤XAMLParseException。請諮詢有什麼不對。謝謝。無法使用以下方法填充多個組合框

public void fillCombo(string query, string name, ComboBox c) 
     { 
      MySqlCommand cmdReader = new MySqlCommand(query,conn); 
      MySqlDataReader myReader; 

      myReader = cmdReader.ExecuteReader(); 

      while(myReader.Read()) 
      { 
       string temp = myReader.GetString(name); 
       c.Items.Add(temp); 
      } 
     } 

//If I call to fill one combo box it works 
public MainWindow() 
{ 
    InitializeComponent(); 
    fillCombo("SELECT * FROM Jobs;", "Job_ID", comboBoxJobID); 
} 

//If I call to fill multiple comboboxes, it returns the error. 
public MainWindow() 
{ 
    InitializeComponent(); 
    fillCombo("SELECT * FROM Departments;", "Dept_ID", comboBoxDeptID); 
    fillCombo("SELECT * FROM Jobs;", "Job_ID", comboBoxJobID); 
    fillCombo("SELECT * FROM Missions;", "Mission_ID", comboBoxMissionID); 
} 
+0

檢查內部異常並將其發佈到此處。另外XAML代碼。 –

+0

是否只在添加多個時纔會發生?你檢查具體的查詢個人?你能向我們發送3個查詢結果的字符串表示嗎? – Liran

+0

是單獨檢查所有3個查詢。字符串表示是正確的。 – kar

回答

1

您沒有關閉您的閱讀器。嘗試以下操作。

public void fillCombo(string query, string name, ComboBox c) 
     { 
      MySqlCommand cmdReader = new MySqlCommand(query,conn); 
      MySqlDataReader myReader; 

      myReader = cmdReader.ExecuteReader(); 

      while(myReader.Read()) 
      { 
       string temp = myReader.GetString(name); 
       c.Items.Add(temp); 
      } 
     } 
     myReader.Close();