获取异常:java.sql.SQLException:对空结果集进行非法操作

问题描述

下面是我的代码,基本上我实现了 sqlquery,我希望如果结果存在于表中,则程序继续使用 if 条件,否则如果结果为空,则 else 条件将运行。 当我的查询结果为空集时出现异常,我不知道如何解决查询。在多次尝试调试后,我要找出发生此问题的位置。它发生在 if else 语句中。 If-else 语句代码

while(!bool){
        try {
            rs = c.s.executeQuery("select * from employee where cnic = '"+s9+"'");
            rs.next();
            tempCnic = rs.getString("cnic");
            if(tempCnic.equals(s9)){
                JOptionPane.showMessageDialog(null,"This CNIC Number is Already Registered");
                s9 = JOptionPane.showInputDialog("Enter a correct CNIC Number:");
            } else if(tempCnic == null) {
                bool = true;
                c.s.executeUpdate("insert into employee values('"+s1+"','"+s2+"','"+s3+"','"+s4+"','"+s5+"','"+s6+"','"+s7+"','"+s8+"','"+s9+"','"+s10+"'");        
                JOptionPane.showMessageDialog(null,"Employee Added Successfully");
                new EmployeeMenu().setVisible(true);
                setVisible(false);
            }
        } catch (sqlException ex) {
            Logger.getLogger(AddEmployee.class.getName()).log(Level.SEVERE,null,ex);
        } catch(NumberFormatException ex){
            JOptionPane.showMessageDialog(null,"Please enter a valid Number");
        }
    }

完整代码

JButton btnAdd = new JButton("Add");
btnAdd.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
        conn c = new conn();
        String radio = null;
        
        if(male.isSelected()){ 
            radio = "Male";
        }
        else if(female.isSelected()){
            radio = "Female";
        }
     
    String s1 = (String)ID;
        String s2 = txtfirstname.getText();
        String s3 = txtlastname.getText();
        String s4 = txtage.getText();
        String s5 = radio;
        String s6 = (String)comboBox2.getSelectedItem();
        String s7 = txtsalary.getText();
        String s8 = txtphone.getText();
        String s9 = txtcnic.getText();    
        String s10 = txtemail.getText();
        
        ResultSet rs;
        String tempCnic;
        boolean bool = false;
        while(!bool){
            try {
                rs = c.s.executeQuery("select * from employee where cnic = '"+s9+"'");
                rs.next();
                tempCnic = rs.getString("cnic");
                if(tempCnic.equals(s9)){
                    JOptionPane.showMessageDialog(null,"This CNIC Number is Already Registered");
                    s9 = JOptionPane.showInputDialog("Enter a correct CNIC Number:");
                } else if(tempCnic == null) {
                    bool = true;
                    c.s.executeUpdate("insert into employee values('"+s1+"','"+s10+"'");        
                    JOptionPane.showMessageDialog(null,"Employee Added Successfully");
                    new EmployeeMenu().setVisible(true);
                    setVisible(false);
                }
            } catch (sqlException ex) {
                Logger.getLogger(AddEmployee.class.getName()).log(Level.SEVERE,ex);
            } catch(NumberFormatException ex){
                JOptionPane.showMessageDialog(null,"Please enter a valid Number");
            }
        }
    }
});

请帮帮我,告诉我我犯了什么错误。谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...