在JCOMBOBOX中重复值

时间:2013-12-16 13:21:27

标签: java swing jdbc jcombobox

我正在尝试更新JComboBox内的值,但问题是当我添加或删除值JComboBox中的所有名称重复时我该怎么解决这个问题?我试图在连接关闭后把它放到但是它没有用

这是我的代码:

  private void cmbNamesPopupMenuWillBecomeInvisible(javax.swing.event.PopupMenuEvent evt) {                                                      

  try{

     String tmp=(String)cmbNames.getSelectedItem();    
     String sql="SELECT * FROM Account WHERE Fname=?";
     pst=conn.prepareStatement(sql);
     pst.setString(1,tmp);
     rs=pst.executeQuery();

     if(rs.next()){              
          String add1=rs.getString("ID");
          txtID.setText(add1);              
          String add2=rs.getString("Fname");
          txtFirst.setText(add2);              
          String add3=rs.getString("Lname");
          txtLast.setText(add3);              
          String add4=rs.getString("Username");
          txtUser.setText(add4);            
          String add5=rs.getString("Password");
          txtPass.setText(add5);            
          cmdUpdate.setEnabled(true);
          cmdDelete.setEnabled(true);
          cmdAdd.setEnabled(false);              
      }            
    }        
    catch(SQLException e){
    JOptionPane.showMessageDialog(null,e);     
    }
}

这是我在Names()中使用的代码:

     private void Names(){

      try{
        String sql="Select fname from account";
        pst=conn.prepareStatement(sql);
        rs=pst.executeQuery();

        while(rs.next()){
            String name=rs.getString("fname");
            cmbNames.addItem(name);

        }
        rs.close();
         pst.close(); 
    }

    catch(SQLException e){
         JOptionPane.showMessageDialog(null,e); 
    }
    finally{
     try{
         rs.close();
         pst.close();

     }
     catch(SQLException e){
           JOptionPane.showMessageDialog(null,e); 
     }
 }

}

1 个答案:

答案 0 :(得分:3)

您从数据库进行的更新会从查询中添加项目。每次运行它时,它只会继续添加项目。在运行更新之前清除组合框。

例如,在遍历结果集之前添加此行。

cmbNames.removeAllItems();