2017-05-08 3 views
0

Ich bekomme einen Syntaxfehler, aber ich bin mir meistens sicher, dass ich alles richtig mache. Könnten Sie einen Blick darauf werfen?Syntaxfehler in SQL-Abfrage in JDBC erhalten

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

Ich würde ''(?,?, Null)' in '(?,?,?)' Und mit 'PST.setObject (3, null)' anstatt – MadProgrammer

+0

ändern Ich habe nur das eine Chance gegeben und bekomme der gleiche Fehler. – MingZhou

+0

Bitte fügen Sie den genauen Fehler in Ihre Frage ein. Das Problem ist jedoch mit "Reihenfolge", es muss zitiert werden, da es ein reserviertes Wort ist. Verwenden Sie in den meisten Datenbanksystemen doppelte Anführungszeichen, in MySQL Rückmarkierungen; so 'ORDER" 'oder' \ 'ORDER \' ' –

Antwort

0

Versuchen Sie, das Semikolon am Ende Ihrer vorbereiteten Anweisung loszuwerden.

Edit: Das Problem war, dass "ORDER" ein reserviertes Wort ist.

+0

Ich hatte ursprünglich hinzugefügt, um zu sehen, ob es funktionieren würde. Das Entfernen hat es nicht behoben. – MingZhou

+3

Ändern Sie den Spaltennamen von der Reihenfolge dann? Könnte ein reserviertes Wort sein? ... Obwohl ich nicht sicher bin, warum Sie dann die Tabelle erstellt haben. –

+0

Das war es. Das ist wirklich seltsam, weil ich das in anderen Abfragen verwendet habe, aber es hat es nicht kaputt gemacht, bis ich es für Inser verwenden musste. Danke – MingZhou