2017-05-08 46 views
0

我收到一個語法錯誤,但我確信我正在做的一切都是正確的。你可以看一下嗎?在JDBC中的SQL查詢中獲取語法錯誤

String ORDER, DROP, CAR; 

      String Statement = "INSERT INTO WORKORDER" 
        + "(ORDER, DROPOFFDATE, COMPLETIONDATE) VALUES " 
        + "(?, ?, null);"; 

      //JOptionPane.showMessageDialog(frame, Statement, "Daisy Imports", 3); 
      try { 
       PreparedStatement PST = connection.prepareStatement(Statement); 
       ORDER = JOptionPane.showInputDialog("Please assign a order number for this order"); 
       int ORDERi = Integer.parseInt(ORDER); 
       DROP = JOptionPane.showInputDialog("Please Enter the date the car was dropped off (YYYY-MM-DD)"); 
       CAR = JOptionPane.showInputDialog("Enter the VIN for the car this work order is for"); 
       PST.setInt(1, ORDERi); 
       PST.setString(2, DROP); 
       PST.execute(); 
+0

我會考慮將'(?,?,null)'改爲'(?,?,?)',並使用'PST.setObject(3,null)'而不是 – MadProgrammer

+0

我剛剛給出了一個鏡頭,同樣的錯誤。 – MingZhou

+0

請在您的問題中包含確切的錯誤。這個問題雖然是'訂單',但它需要引用,因爲它是一個保留字。在大多數數據庫系統中使用雙引號,在MySQL中使用雙引號;所以'「ORDER」'或'\'ORDER \'' –

回答

0

嘗試在準備好的語句結尾處刪除分號。

編輯:問題是,「訂單」是一個保留字。

+0

我最初補充說,看看它是否會工作。刪除它沒有修復它。 – MingZhou

+3

從訂單更改列名然後呢?可能是保留字? ...雖然不知道爲什麼它會讓你創建表格。 –

+0

就是這樣。這真的很奇怪,因爲我在其他查詢中使用過,但它沒有打破它,直到我不得不使用inser。謝謝 – MingZhou