2010-11-26 4 views
1

Я думаю, что я ошибался в «результатах». Мой код для вставки данных является:ResultSet не для запроса INSERT? Сообщение об ошибке: Тип несоответствия: невозможно преобразовать из int в String

ResultSet columns = statement.executeUpdate("INSERT INTO Feedback (Username, Feedbacks) VALUES('" + user + "','"+ msg +"')"); 

Ошибка компиляции:

Несоответствие типа: не удается преобразовать из INT в строку

Можете ли вы мне помочь?

ответ

4

Statement#executeUpdate() не возвращает ResultSet, но int представляет затронутые строки. Исправьте его следующим образом.

int affectedRows = statement.executeUpdate(sql); 

Или, если вас не интересует количество затронутых строк, просто игнорируйте его.

statement.executeUpdate(sql); 

Кстати, ошибка компиляции сама по себе является странной. Разве вы не смотрите на неправильную линию? Ошибка указывает, что вы пытаетесь присвоить результат intString, но ваш код показывает, что вы пытаетесь присвоить int результат ResultSet.


Это говорит и не имеет отношение к текущей задаче, если user и msg являются частями контролируемого пользователя ввода, то этот кусок кода подвержен SQL injectionattacks. Я настоятельно рекомендую заменить Statement на PreparedStatement. См. Также this tutorial как использовать подготовленный оператор.

+0

СПАСИБО МИЛЛИОН, РАБОТАЕТ, И Я ТАК КРОВИ ДУМБ, И ВЫ БРИЛЛИАНТ И МОЙ СПАСАТЕЛЬ !!! Спасибо за быстрый ответ! – Dayne 2010-11-26 02:39:43

Смежные вопросы