日期:2014-05-18  浏览次数:20691 次

Statement.executeUpdate不能在while(RestleSet.next())里面使用?碰到个奇怪问题
stm   =   conn.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
rst   =   stm.executeQuery( "select   *   from   url   where   ischeck <> 0   order   by   count6 ");

然后我循环取得rst里面的值,
String   url   =   " ";
int   i   =   1;
while(rst.next()){
url   =   rst.getString( "url ");
stm.executeUpdate( "update   url   set   count   = "+i+ "   where   url= "+url);
i++;
}

大致的流程就是这样的,我先取得了一个结果集,然后循环得到这个结果集的内容,根据得到的这个内容我再做一次更新的操作,结果报错,不让执行。
然后我又换了rst.updateRow()的方法,结果还是报错,说
row   update   failed,
纳闷勒,应该可以啊,我创建的Statement是可更新的啊,这是为什么?
弄的我现在只有先暂存到一个数组里面,然后再循环输出这个数组的值来更新..-   -#

------解决方案--------------------
rs.updateRow()可以,executeUpdate行不行我没试过。
你先试试吧。