2017-04-07 4 views
-4
String sql = " INSERT INTO `tblservice` (`ServiceID`,`accountID`, `Kind`, `Description`, `Price`, " 
     + "`Quantity`, `Total`, `DateAndTime`) VALUES (NULL, ?, ?, ?, ?, ?, ?, ?)"; 
PreparedStatement pstm = conn.prepareStatement(sql); 
pstm.setInt(1, this.accountID); 
pstm.setString(2, "" + SelectionBox.getSelectedItem()); 
pstm.setString(3, desc); 
pstm.setFloat(4, Float.parseFloat(PriceTF.getText())); 
pstm.setFloat(5, Float.parseFloat(QuantityTF.getText())); 
pstm.setFloat(6, this.getTotal()); 
pstm.setDate(7, dateAdded); 

pstm.executeUpdate(); 

Fehlerjava sql Einsatz preparedstatment Fehler

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '?, ?, ?, ?, ?, ?, ?)' at line 1 
+1

Wo ist die Frage? Wo ist der Kontext? Wir brauchen mehr Informationen, damit wir versuchen können, Ihnen zu helfen ... – leobelones

+2

Die Fehlermeldung sagte Ihnen, was zu tun ist. Was ist deine Frage? – betseyb

+0

Ich benutze gerade eine Taste, um diesen Code auszulösen, und jedesmal, wenn ich die Taste drücke, zeige ich diesen Fehler an und keine Operationen auslösen, ich meine, dass keine Daten eingefügt werden. Das sollte nicht sein, neue Daten in der Tabelle hinzuzufügen, aber es funktioniert nicht. – meltits

Antwort

0

Statt make NULL in Ihrer Abfrage VALUES (NULL, ...) Verwendung setNull zum Beispiel:

pstm.setNull(1, java.sql.Types.INTEGER); 

es die Art nehmen, Ihr Feldes In diesem Beispiel betrachte ich es als java.sql.Types.INTEGER es kann java.sql.Types.VARCHAR oder irgendein sql type sein

So sollte Ihre Abfrage wie folgt sein:

String sql = "INSERT INTO tblservice (ServiceID, accountID, Kind, Description, 
       Price, Quantity, Total, DateAndTime) 
       VALUES (?, ?, ?, ?, ?, ?, ?, ?)"; 

PreparedStatement pstm = conn.prepareStatement(sql); 
pstm.setNull(1, java.sql.Types.INTEGER); 
pstm.setInt(2, this.accountID); 
.... 
+0

danke für deine antwort bro. Ich habe Ihren Rat versucht, aber immer noch den gleichen Fehler gibt es .error auftreten, weil: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Sie haben einen Fehler in Ihrer SQL-Syntax; Überprüfen Sie das Handbuch, das Ihrer MariaDB Server-Version für die richtige Syntax in der Nähe von "?,?,?,?,?,?,?,?)" in Zeile 1 – meltits

+0

entspricht, sind Sie sicher über den Typ der Felder "accountID" 'Ich denke, es ist ein Int in Ihrer Datenbank und nicht ein String, ich bin falsch? @meltits –

+0

Ich habe Syntax unten aktualisiert, aber immer noch der gleiche Fehler aufgetreten – meltits