2017-04-04 6 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); 
    } 
} 
関連する問題