如何判断一ResultSet结果集是否为空?在线等待 aresultset是个对象句柄呀!你检测他是不是null,只是检测它有没有被引用呀!建议你检测它的第一个元素(如果它的对象是依次排列的) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你检查返回的result.size()大小就可以了亚 一执行RS.NETXT(),数据库就报错 while (rs.next()){ .............} 一旦执行rs.next();就报告以下错误:java.sql.SQLException: [Microsoft][ODBC 驱动程序 管理器] 非法的游标状态 rs.afterlast();if(rs.getrow()){} 在上面的代码中插入rs.previous(); 上面俺说错了,应该是判断你的collection实例的size(),然后处理就可以了 杨杨兄的说法会出现以下错误:java.sql.SQLException: Result set type is TYPE_FORWARD_ONLY 是做搜索之类的吧,偶有建议:加一个变量int count=0;while(rs.next){ count++;}if count==0 则没有找到数据ok? 不知道怎样设置TYPE,用rs.setFetchDirection(ResultSet.TYPE_SCROLL_SENSITIVE)依然有上述错误 空结果集一旦执行rs.next();就报告以下错误:java.sql.SQLException: [Microsoft][ODBC 驱动程序 管理器] 非法的游标状态 先问你,你的Resultset是否一个查询得到的结果集? ok,你只要判断rs.first()是否true就可以了,因为默认rs的游标一开始是在first row前面,而rs.first()判断是否有第一条记录,目的达到! 可以通过rs.next(),这个循环的次数判断。 我记得rs好像有个hasNext类似的方法,在JUbilder下点一下找一找吧,不过记得如果不为空,要把光标在放回初始位置。 建立Statement对象时可以带游标类型参数;判断记录集为空:private boolean testRs(ResultSet rs){ if(rs.next()) return true; else return false;}试试看 我不知道你获得ResultSet的代码,但从你说的“一执行RS.NETXT(),数据库就报错”(你没有给出报错信息),我猜你代码返回的ResultSet集的值是null(注意:null和记录数为零的数据集是两回事。),也就是说根本就没有合法的数据集返回,当然就不能next()啦。如果你这样: if(rs!=null) rs.next();就不会报错了。检查一下你的数据源设置和你的代码是否相符吧! while(rs.next()!=null){ //...} 求教:java模拟文件输入 输出图片的数组 [求助]如何计算MP3的播放时间 菜鸟问题:怎么写操作界面? 递归方法打印数字塔 java 怎样导入包阿.? 如何开发文档管理系统? 关于打包问题? 如何在一个线程中启动另外一个线程,然后本线程就退出? 后缀名为.ISO的文件如何打开? 请问怎样从键盘读入一个字符串,怎样连接两个字符串,谢谢 在java中如何压缩和解压文件夹?
.............
}
java.sql.SQLException: [Microsoft][ODBC 驱动程序 管理器] 非法的游标状态
if(rs.getrow()){}
java.sql.SQLException: Result set type is TYPE_FORWARD_ONLY
{
count++;}if count==0 则没有找到数据ok?
用rs.setFetchDirection(ResultSet.TYPE_SCROLL_SENSITIVE)
依然有上述错误
java.sql.SQLException: [Microsoft][ODBC 驱动程序 管理器] 非法的游标状态
在first row前面,而rs.first()判断是否有第一条记录,目的达到!
判断记录集为空:
private boolean testRs(ResultSet rs){
if(rs.next())
return true;
else
return false;
}
试试看
if(rs!=null)
rs.next();
就不会报错了。检查一下你的数据源设置和你的代码是否相符吧!
//...
}