2016-03-30 13 views
-1

ここでは、テーブルを更新しようとしています。studentの値がユーザによって入力されたexamのマークを更新してください。ユーザからの入力でテーブルを更新するには

このクエリを使用しています。

updateExamMark = connection.prepareStatement("UPDATE Results SET exam= ? WHERE student = ?"); 

そして、これは私はこのエラーが取得しています私の方法(ない完全なコード)

public List<Results> updateExamMark(int exam, String student) 
{ 
    List<Results> results = null; 
    ResultSet resultSet = null; 

    try 
    { 
     updateExamMark.setInt(1, exam); 
     updateExamMark.setString(2, student); 


    // executeQuery returns ResultSet containing matching entries 
    resultSet = updateExamMark.executeQuery(); 

    results = new ArrayList<Results>(); 

である私のクエリと間違っている何

を「queryメソッドを実行するには、更新するために使用することはできませんか」?

+1

http://stackoverflow.com/questions/16006868/sqlexception-executequery-method-can-not-be-used-for-updateこれを確認しました –

+0

正確には「実行クエリメソッドを使用できません更新する " –

答えて

1

queryメソッドを実行するには、あなたが非選択クエリを実行するためにexecuteUpdate()を使用する必要があります

int r = updateExamMark.executeUpdate(); 

resultSet = updateExamMark.executeQuery(); 

変更を更新するために使用することはできません。

0

SELECTクエリを実行する最初の方法は、executeQuery()からexecuteUpdate()に変更する必要があります。更新する必要があるときは(INSERTDELETEUPDATE ...)、もう1つを使用する必要があります。

だから、声明

resultSet = updateExamMark.executeQuery(); 

resultSetにあなたSELECT文のすべての結果を返します。このステートメントを

int rowsAffected = updateExamMark.executeUpdate(); 

に変更して、更新プログラムの影響を受ける行数を返します。

関連する問題