我的目的是在一个JComboBox里添加选项:不仅要把这个选项添加到下拉菜单里还要把这个选项添加到数据库里。我的代码如下:jc_yl_name1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
 ResultSet rs2;
 String a=null;
try {
rs2 = Sqlconn.getStatement().executeQuery("Select max(name_num)+1 from yl_name");
while(rs2.next()){
  a=rs2.getString(1);
}
} catch (SQLException e2) {
e2.printStackTrace();
}
ResultSet rs1;
try {
rs1 = Sqlconn.getStatement().executeQuery("SELECT DIstinct yl_name FROM yl_name");
while(rs1.next()){
if(jc_yl_name1.getSelectedItem().toString().trim().equals(rs1.getString(1).trim())==true){
break;
}else{
   if(!rs1.next()){
Sqlconn.getStatement().executeUpdate("Insert into yl_name(name_num,yl_name) Values('"+a+"','"+jc_yl_name1.getSelectedItem().toString().trim()+"')");
jc_yl_name1.addItem(jc_yl_name1.getSelectedItem().toString().trim());
 }
else{continue;}
}
}
 rs1.close();
} catch (SQLException e1) {
e1.printStackTrace();
}
}
});
jc_yl_name1是一个JComboBox。请问我的哪错了!!谢谢!!

解决方案 »

  1.   

    你的问题是在下拉列表中输入后,Enter,为什么触发了两次吗?
      

  2.   

    感觉你读取数据的这个地方有问题吧?
    while(rs1.next())...这里又有一个if(!rs1.next())
    {}
    你这是什么逻辑啊?
      

  3.   

    rs1 = Sqlconn.getStatement().executeQuery("SELECT DIstinct yl_name FROM yl_name");
    你这一句似乎要查很多数据出来,JDBC里面,你最好用execute(sql)这个方法;
    executeQuery(sql)用于产生单个结果集的;execute(sql)执行返回多个结果集;
    你看看是否是这个问题