我真的不知道发生了什么,所以我将发布部分代码
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 循环以某种方式被卡住但没有额外的输出(索引 2)。此外,数据库完全按照应有的方式更新,但程序没有从这里开始,并且“标志 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();