我正在尝试更新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);
}
}
}
最佳答案
您从数据库进行的更新会添加查询中的项目。每次运行此功能时,只会继续添加项目。在运行更新之前,请清除组合框。
例如,在遍历结果集之前添加此行。
cmbNames.removeAllItems();
关于java - 在JCOMBOBOX中重复值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20612002/