2014-04-13 36 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();