代码片断:
stmt=Conn.createStatement(ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_UPDATABLE);
String sqlsubstr = "select * from street where AreaID=" + 1;
Rs=stmt.executeQuery(sqlsubstr);
try{
while(Rs.next()){
Rs.deleteRow();
}
}catch(Exception e){
System.out.print(e.toString());
}
为什么不能完全清除AreaID等于1的记录,总是隔一个删除一个.请大家帮一下忙?别使用sql语句和使用记录集哪一个效率更高呢?
stmt=Conn.createStatement(ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_UPDATABLE);
String sqlsubstr = "select * from street where AreaID=" + 1;
Rs=stmt.executeQuery(sqlsubstr);
try{
while(Rs.next()){
Rs.deleteRow();
}
}catch(Exception e){
System.out.print(e.toString());
}
为什么不能完全清除AreaID等于1的记录,总是隔一个删除一个.请大家帮一下忙?别使用sql语句和使用记录集哪一个效率更高呢?
Rs.deleteRow();
}
=============
这样工作的:删除当前行,指针移到下一行,再Rs.next()指针移到下下一行,于是错过了一行sql语句效率高
Rs.next
try{
while(!Rs.isLastAfter){
Rs.deleteRow();
Rs.next;
}
}catch(Exception e){
System.out.print(e.toString());
}
Rs.next;
try{
while(!Rs.isLastAfter){
Rs.deleteRow();
}
}catch(Exception e){
System.out.print(e.toString());
}
rs.deleteRow(),删除记录1
rs.next(),指针指向第二行,即记录3
…………
…………
最后记录2的记录仍然存在……
Rs=stmt.executeQuery(sqlsubstr);
Rs.next;
try{
while(!Rs.isAfterLast()){
Rs.deleteRow();
}
}catch(Exception e){
System.out.print(e.toString());
}
你的意思是Rs.deleteRow();在删除第一个记录会,自动指向了第二行,既第二条记录是吗?
但是我试了之后,只删除了第一条记录.不知道这是怎么回事呢?
stmt=Conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
...
while (Rs.first()) {
Rs.deleteRow();
}