...statement = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSet rs = statement.excuteQuery("select * from " + tablename);
while(rs.next())
{
...
rs.deleteRow();//记录已经成功删除
...
}
..数据库是Sql Server2000,比如表中记录共有10行,我已经成功删除了1行,还剩9行,但是通过调试,发现rs走过第9行后,rs.next()仍然返回true!调试时显示rs.getRow()=10,在运行就出现错误java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 无效的游标状态
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6958)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7115)
at sun.jdbc.odbc.JdbcOdbc.SQLGetDataString(JdbcOdbc.java:3908)
at sun.jdbc.odbc.JdbcOdbcResultSet.getDataString(JdbcOdbcResultSet.java:5702)
at sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:356)
at sun.jdbc.odbc.JdbcOdbcResultSet.getObject(JdbcOdbcResultSet.java:1680)
at DeleteRedundance.main(DeleteRedundance.java:60)郁闷了一下午,实在解决不了。。
ResultSet rs = statement.excuteQuery("select * from " + tablename);
while(rs.next())
{
...
rs.deleteRow();//记录已经成功删除
...
}
..数据库是Sql Server2000,比如表中记录共有10行,我已经成功删除了1行,还剩9行,但是通过调试,发现rs走过第9行后,rs.next()仍然返回true!调试时显示rs.getRow()=10,在运行就出现错误java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 无效的游标状态
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6958)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7115)
at sun.jdbc.odbc.JdbcOdbc.SQLGetDataString(JdbcOdbc.java:3908)
at sun.jdbc.odbc.JdbcOdbcResultSet.getDataString(JdbcOdbcResultSet.java:5702)
at sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:356)
at sun.jdbc.odbc.JdbcOdbcResultSet.getObject(JdbcOdbcResultSet.java:1680)
at DeleteRedundance.main(DeleteRedundance.java:60)郁闷了一下午,实在解决不了。。
解决方案 »
- StandardWrapper[:AAAServlet]: Waiting for 4 instance(s) to be deallocated
- 谷歌测试工具找不到生成的静态文件,怎么回事啊???
- 十万火急!!菜鸟问题!!
- jtds jdbc odbc-jdbc哪个好?
- Java集成Project2003的问题~~~~急!!
- Web 开发选什么工具?
- 基于模式和框架下的一个模块:员工考勤系统
- 微信自定义菜单点击无post请求
- 使用WinCVS怎样得到上几个版本的文件,比如在使用1.3的过程中打开1.2的文件,
- 为什么JCreator找不到Servlet包?
- 这段javascript是什么意思啊?
- (求助)请教一个问题!
删除后,rs走9行如果删除后还是走10行,那就要到数据库去看看了,记录到底还在不在为什么不直接用DELETE语句删除呢
学生吗???只有学生才用resultset去记录集中操作数据库,建议你直接操纵数据库,看还会不会出问题
--------------------------------------------------------------那应该怎么做啊
select distinct * into #Tmp from tableName
drop table tableName
select * into tableName from #Tmp
drop table #Tmp
这样可以删除重复的记录,但是问题是很多表里有text类型的字段,distinct不能作用与该类型,所以上述办法不能完全起作用,不知大家还有什么好办法?
不过最好还是建议直接用DELETE语句删:DELETE mytable WHERE first_column=‘Delete Me’
个人感觉,你看看java doc关于这方面的介绍,或许是你的JDBC驱动程序本身就不支持
我也知道直接写SQL语句操纵数据库比较好,但是我想不出怎么写啊
没想到用ResultSet遇到这么多问题,原来以为很简单的一个程序
你删除记录总有个条件吧,把条件写到SQL里面去执行就是了。
在8楼我说过了情况了,就是因为where条件写不出来,才想到用编程的方法的