2010-11-26 14 views
1

「結果セット」で間違っていると思います。データを挿入するための私のコードは次のとおりです。ResultSetがINSERTクエリ用ではありませんか?エラーメッセージ:型の不一致:intから文字列に変換できません

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); 

ところで、コンパイルエラー自体は奇妙です。あなたは間違った行を見ていませんか?このエラーはStringintの結果を割り当てようとしていますが、intの結果をResultSetに割り当てようとしていることを示すコードが表示されます。 usermsgはユーザ制御入力の一部である場合、現在の問題とは無関係前記


は、コードのこの部分はSQL injectionattacksする傾向があります。 StatementPreparedStatementで置き換えることを強くお勧めします。準備されたステートメントを使用する方法については、this tutorialも参照してください。

+0

私は何百万ものことをしています。私は血まみれの塊であり、あなたは華麗で、私の救助者です!速い返信をありがとう! – Dayne

+0

あなたは大歓迎です:) – BalusC

+0

ええ、最初は私はコンパイルエラーが奇妙だと思っていましたが、私はそれをグーグルで見つけたとき、同じ問題を抱えている人が見つかりました。それ。私が挿入したいデータは整数ではありません。だから、executeUpdateが結果セットを返さなかったと言って、あなたは「ただ無視する」と言ったとき、私は結果セットを削除しようとしました。ハハ – Dayne

関連する問題