2011-06-09 65 views
0

Iam使用javafx使用prepardstatement更新數據庫,但在運行時iam在控制檯獲取此錯誤並且在編譯時不顯示。它看起來像字符串沒有得到它輸入的值。也許我是錯的還是搞清楚將字符串轉換爲整數用於準備陳述

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) 

回答

1

它不會在編譯時表示,沒有 - input.text是一個空字符串(在執行時),當你試圖解析它,那是失敗的。

你需要弄清楚input.text爲空時你想要做什麼。

+0

在我的javafx代碼中,驗證工作正常,但是如果我引用一個變量作爲參數發送給結果集,我將獲得非法的前向引用錯誤。例如: – jbsuser 2011-06-11 15:44:37

+0

@ jbs123:恐怕你真的沒有把自己弄清楚。 – 2011-06-11 16:16:25

+0

@skeet不要害怕它只是嘗試一種新的方式使用javafx,我自己修復它謝謝 – jbsuser 2011-06-12 06:36:59

2

因爲您要解析的字符串是"",因此無法解析爲int

您可能需要驗證輸入,或者如果您想允許""然後爲這種情況分配一些默認值。