没遇到过,换个驱动试试。
或者去掉一些代码看看:
stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
while(rs.next())
{
System.out.println(rs.getString("number"));
}
或者去掉一些代码看看:
stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
while(rs.next())
{
System.out.println(rs.getString("number"));
}
stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
while(rs.next())
{
System.out.println(rs.getString("number"));
}
不过,我想,这样也应该得到和你的代码一样的结果!!看看是不是数据库的问题!
conn=DriverManager.getConnection(url,username,password);stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
rs=stmt.executeQuery(sql);//rs.beforeFirst();
while(rs.next())
{
System.out.println(rs.getString("number"));
}
这代码已经说明这个数据库是可滚动和可修改的,你想用beforeFirst()来做什么呢?当然这样写法是没什么错误前两条记录可以正确读出,说明你的代码应该没有问题(至少从你贴出来的这段来说),还是去看看数据库吧
rs.updateRow();可能确实是象楼上说的问题,因为update会把该行数据的数据清空,可是updateRow(),不是已经赋新值了。难道还需要别的方法,把rs 重新得到一遍?
如果你用updateRow()方法也把第三笔数据赋新值了,我想它不会读不出来吧
呵呵~