0

我正在使用 javafx 使用 prepardstatement 更新数据库,但是在运行它时,我在控制台上收到此错误,并且在编译时不显示。看起来字符串没有得到任何输入的值。也许我错了还在想

var input: TextBox;

var inputnum = Integer.parseInt({input.text});


stmt = conn.prepareStatement("INSERT into dummy2 values(?,?,?)");
            stmt.setString(1,"");
            stmt.setString(2, "");
            stmt.setInt(3, inputnum);

出现错误:-

java.lang.NumberFormatException: For input string: ""
        at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
        at java.lang.Integer.parseInt(Integer.java:468)
        at java.lang.Integer.parseInt(Integer.java:497)
        at testint.Main$Main$Script.applyDefaults$(Main.fx:36)
        at testint.Main$Main$Script.applyDefaults$(Main.fx:36)
        at testint.Main.javafx$run$(Main.fx)
4

2 回答 2

2

因为您尝试解析的字符串""是不可解析为int.

您可能需要验证输入,或者如果您想允许"",则为这种情况分配一些默认值。

于 2011-06-09T12:23:58.160 回答
1

它不会在编译时显示,no -input.text是一个空字符串(在执行时),当您尝试解析它时,它会失败。

你需要弄清楚当你input.text是空的时候你想做什么。

于 2011-06-09T12:23:35.863 回答