我正在尝试更新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);
}
}
}
答案 0 :(得分:3)
您从数据库进行的更新会从查询中添加项目。每次运行它时,它只会继续添加项目。在运行更新之前清除组合框。
例如,在遍历结果集之前添加此行。
cmbNames.removeAllItems();