何が起こっているのかよくわからないので、コードの一部を投稿します
int index2 = 0;
while(rs.next()){
System.out.println(rs.getInt("ItemID") + ", " + rs.getString("SocSecNum") + ", " + rs.getInt("Score"));
if(rs.getInt("ItemID") == ID && rs.getString("SocSecNum").equals(socSecNum)){
alreadySet = true;
System.out.println("Flag 1");
caq.executeUpdate("UPDATE ProjectScore SET Score = " + userScoreField.getText() +
" WHERE (ItemID = " + ID + ") AND (SocSecNum = '" + socSecNum + "')");
}
index2++;
System.out.println(index2);
}
System.out.println("Flag 2");
うまくいくように見えますか?出力は次のとおりです。
1、640730-7419、3
フラグ1
1
これは、whileループが何らかの理由でスタックしているが、追加の出力(index2)がないことを意味します。また、データベースは正確に更新されますが、プログラムはここから進行せず、「フラグ2」が書き出されることはありません。何か案は?
編集:
catch (SQLException e1) {
System.out.println(e1.getMessage());
System.out.println(e1.getCause());
}
与える
ResultSetを閉じた後の操作は許可されません
ヌル
編集2:
これがそれを機能させるために使用されるコードです
PreparedStatement statement = caq.getConnection().prepareStatement("SELECT * FROM ProjectScore WHERE SocSecNum = '"
+ socSecNum + "'", ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
rs = statement.executeQuery();