2010-08-05 125 views
0

我想從結果集中的數據庫檢索結果。不過,我想執行結果集中每個條目的更新查詢,但我得到一個異常。 這是我的代碼結果集關閉異常

try { 
     Statement statement = sqlconnection.conn.createStatement(); 
     query = "select * from reminders where year<= "+ syear +" and month<=" + smonth +" and date<"+ sday +" and reminded like 'false';"; 
     rs= statement.executeQuery(query); 
     while (rs.next()){ 
      id=rs.getInt("sno"); 
      String reminder = rs.getString("remind"); 
      JOptionPane.showMessageDialog(null, reminder); 
      statement.executeUpdate("update reminders set reminded='true' where sno="+id+";"); 
     } 

能ANY1告訴我這樣做的更好的辦法?我對編程非常陌生。因此,向我展示如何將會非常有幫助。 謝謝

+0

你在哪一行得到錯誤? – KeatsPeeks 2010-08-05 08:21:56

+1

不是你的問題的答案......但如果這是一個生產代碼,我看到你的代碼中的一個非常大的SQL注入問題......不要使用字符串連接構建SQL squeries ...使用參數化查詢insted。 – 2010-08-05 08:23:54

+0

@國王:雖然通常是真的,但我會假設所有變量都是數字。 @Samuel_xL:第二次打電話給re.next(),我敢打賭 – Nicolas78 2010-08-05 08:26:57

回答

2

當您嘗試使用它執行更新時,您仍在循環播放statement的結果。我會嘗試使用第二個Statement對象進行更新。

0

您的ResultSet不可更新。

Statement statement = sqlconnection.conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);