2017-04-07 24 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(); 

エラーJavaのSQLのINSERT preparedstatmentエラー

クエリ内代わりメイクNULLの
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

どこに問題がありますか?文脈はどこですか?私たちはあなたに手伝ってくれるようもっと詳しい情報が必要です。 – leobelones

+2

エラーメッセージはあなたに何をすべきか教えてくれました。あなたの質問は何ですか? – betseyb

+0

私は現在、そのコードをトリガーするためにボタンを使用しています。ボタンを押すたびに、そのエラーが表示され、何も操作トリガーはデータが挿入されていないことを意味します。テーブルに新しいデータを追加するべきではないはずですが、動作していません。 – meltits

答えて

0

例えばVALUES (NULL, ...)使用setNull:それはあなたの分野の、タイプがかかります

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

この例では、それはjava.sql.Types.INTEGERと考えられます。java.sql.Types.VARCHARまたは任意のsql typeとすることができます

だからあなたのクエリは次のようにする必要があります:

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

あなたの回答仲間に感謝します。私はあなたのアドバイスを試みたが、同じエラーが返されます。エラーは、次の理由で発生します。com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:SQL構文にエラーがあります。行1で '、?、?、?、?)'の近くで使用する正しい構文についてはMariaDBサーバのバージョンに対応するマニュアルを確認してください – meltits

+0

あなたのフィールドのタイプについては確かですか?accountID '私はそれがあなたのデータベースではなく、文字列ではないと思う、私は間違っている? @meltits –

+0

私は、以下の構文を更新しましたが、それでも同じエラーが= "' tblservice'( 'ServiceID'、' accountID'、 'Kind'、' Description'、 'Price'、' Quantity'、INSERT INTO – meltits