Ошибка при обновлении таблицы [значение не указано для параметра 3] - PullRequest
0 голосов
/ 27 января 2012

Я использую структуру Struts 1.3.8 в NetBeans 6.9, и я хочу обновить значение в базе данных, используя preparedStatement.Он продолжает выдавать ошибку, что (значение не указано для параметра 3), и я не знаю, что это за параметр, потому что я устанавливаю значение путем определения идентификатора.Я высоко ценю вашу тяжелую работу и надеюсь, что вы поможете мне с этим.

Это мой код:

try{
    // update the item Qyt in the item table after checking it out
    PreparedStatement ps2 = (PreparedStatement) con.prepareStatement("UPDATE item SET itemQyt=? WHERE itemID=?"
             + " VALUES (?,?)");
    ps2.setInt(1, newQuantity);
    ps2.setInt(2, itemID);
    int updateRows = ps2.executeUpdate();
    ps2.close();

} catch (Exception e) {
    errors.add("SQLUpdatingItem", new ActionMessage("errors.SQLUpdatingItem"));
    System.out.println("ERROR Updating : Did not Update the itemQyt in the item table which the itemId is : " + itemID + " and the new Qyt is :" + newQuantity + " " + e);
}

и это сообщение об ошибке:

ОШИБКА Обновление: не обновил itemQyt в таблице элементов, для которой itemId: 7, а новый Qyt: 9 java.sql.SQLException: для параметра 3

значение не указано.

Ответы [ 2 ]

1 голос
/ 27 января 2012

Строка, которую вы передаете prepareStatement, содержит 4 заполнителя (?), но вы предоставляете значения только для 2 из них (setInt).

0 голосов
/ 27 января 2012

Удалите часть значений. Оператор UPDATE не имеет части значений.

"UPDATE item SET itemQyt=? WHERE itemID=?"

(VALUES является частью оператора INSERT.)

...