2017-04-04 18 views
0

我使用組合框從MySQL數據庫檢索數據。但是,當我插入第一個值設置爲數據庫,組合框值重複。我想知道它爲什麼會發生,以及如何避免它。我主要調用了這個方法。由於JavaFX組合框重複相同的值集

public void FillCombo(){ 

    try{    
     String sql = "Select Name from Employee where Position='Driver'"; 
     pst = con.prepareStatement(sql); 
     rs = pst.executeQuery(); 

     while(rs.next()){ 
      op.add(rs.getString("Name")); 

     } 
     selectDriverC.setItems(op); 

     pst.close(); 
     rs.close(); 
    } 
    catch(Exception e){ 
     System.out.println(e); 
    } 
} 
+0

什麼是'op'?它在哪裏定義?當你調用'FillCombo'時,你確定它是空的嗎?你確定數據庫本身沒有重複的值嗎? –

+0

Op是觀察者列表對象。正如我的意思是,當我第一次運行它的值是好的。當我添加第一個值設置從數據庫中的值重複3次 – nascar895

回答

1

添加來檢查,如果字符串你想插入已經在op的條件, 我認爲op類型爲ObservableList<String>。這應該工作:

public void FillCombo(){ 

    try{    
     String sql = "Select Name from Employee where Position='Driver'"; 
     pst = con.prepareStatement(sql); 
     rs = pst.executeQuery(); 

     while(rs.next()){ 
      if(!op.contains(rs.getString("Name")) 
      add(rs.getString("Name")); 

     } 
     selectDriverC.setItems(op); 

     pst.close(); 
     rs.close(); 
    } 
    catch(Exception e){ 
     System.out.println(e); 
    } 
}