我想添加新的文件室,我会在文本字段中键入文件室的详细信息,Room Number, Room type, Bed number and Rates,当我单击save时,会得到错误消息java.lang.NumberFormatException: For input string: ""
错误源于at RoomMang.jButton1ActionPerformed(RoomMang.java:352)函数。见图片:
我使用fetchFromTextF();的insert语句如下所示:
System.out.println (insertquery);
这就是我从文本字段获取数据的方式:

public void fetchFromTextF(){
    rno=rnumber.getText();
    rtype=jTextField2.getText();
    rrate=Integer.parseInt(jTextField3.getText());
    rbed=jTextField4.getText();
}

这是我执行的保存操作按钮:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
    try {
        clearTextF();
        enableTextF();
        String query = "SELECT * FROM roomdetail where room_no like '" +           rnumber.getText() + "';";
        smt = con.createStatement();
        rs1 = smt.executeQuery(query);
        if (!rs1.next()) {
            try {
                if (evt.getActionCommand().equals("Save")) {
                    fetchFromTextF();
                    int code = JOptionPane.showConfirmDialog(this, "Information of Room No." +rno+ " will be added in database.", "Confirmation", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.INFORMATION_MESSAGE);
                    if (code == JOptionPane.YES_OPTION) {
                        String insertquery = "insert into roomdetail(room_no,room_type,room_rate,room_bed)values('" +rno + "','" + rtype + "'," + rrate + ",'" + rbed + "');";
                        smt = con.createStatement();
                        int success = smt.executeUpdate(insertquery);
                        if (success > 0) {
                            JOptionPane.showMessageDialog(this, "Record Saved");
                            jButton1.setText("New");
                        } else {
                            JOptionPane.showMessageDialog(this, "Problem in Saving. Retry");
                        }
                    } else {
                    }
                } else if (evt.getActionCommand().equals("New")) {
                    clearTextF();
                    jButton1.setText("Save");
                }
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        } else {
            JOptionPane.showMessageDialog(this, "Room No. already used, Give another Room No.");
        }
    } catch (Exception ex) {
    }
}

最佳答案

jTextField3中的值为空,因此下面的操作将失败

rrate=Integer.parseInt(jTextField3.getText());

也许换成
rrate = -1;
if (jTextField3.getText().trim().length() > 0) {
  rrate=Integer.parseInt(jTextField3.getText());
}

或者只是捕捉异常
try {
   rrate=Integer.parseInt(jTextField3.getText().trim ());
}
catch (NumberFormatException ex) {
    System.err.println (ex);
    rrate = -1;
}

关于java - java.lang.NumberFormatException:对于输入字符串:“”,保存到数据库时,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41053255/

10-09 08:11
查看更多