如何判断 ResultSet Rs 为空?

wantfly 2003-12-12 04:11:32
如何判断 ResultSet Rs 为空?
用wasNull()似乎没用,Rs中查出的即使是空记录,用wasNull()得出的照样是假值。
如何真正判断 Rs 是否为空。用哪个方法?
...全文
1188 20 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
卜算子优乐 2003-12-16
  • 打赏
  • 举报
回复
如果RS没有记录那么rs.getRow()肯定是等于0 的,就可以判断了。
  • 打赏
  • 举报
回复
不行吗,下次我试试

我记得是
if(!rs.isAfterLast() && !rs.isBeforeFirst())
当时也是做一个分页程序,用if(rs.next())滚动了一条记录,不好。

foolfish 2003-12-12
  • 打赏
  • 举报
回复
同样的问题竟然有人和我问的一摸一样
不过还是有很多人没有理解概念就回答

如果仅仅是 if(rs.next())这样记录会被滚一条,必须条会来才能正确while

我的问题最后也是上面的nanman帮解决的
不过他的code有点问题,改成


### ### ### ### ### ### ### ###
(内容已经被马塞克)





无敌反马塞克软件启动~!!




if(rs.isAfterLast()==rs.isBeforeFirst()){
记录为空
}else{
while(rs)..
}


后就正常了.


其实就是因为ResultSet没有提供一个isempty的方法,不然就没这么多事儿了.
WOnion 2003-12-12
  • 打赏
  • 举报
回复
这你也问
cricketlj 2003-12-12
  • 打赏
  • 举报
回复
to:sammy791010(javabird)
null和没有记录不是一个概念,请分清楚了。他现在是要判断是不是空,并不是判断我的rs返回的记录的行数等于0。
  • 打赏
  • 举报
回复
if(!rs.isAfterLast() && !rs.isBeforeFirst())
sammy791010 2003-12-12
  • 打赏
  • 举报
回复
if(rs.next())没错
lixiang823517 2003-12-12
  • 打赏
  • 举报
回复
rs.last();
是将ResultSet指向最后一条记录!
后面的就一目了然了哦
lixiang823517 2003-12-12
  • 打赏
  • 举报
回复
rs.last();
然后判断
if(rs.getRow()>0)《返回int值》
大于0就不为空
else......
cricketlj 2003-12-12
  • 打赏
  • 举报
回复
if(rs.next())
如果为false,不就是为空么

说的不对。如果你的rs为null的话,rs.next()会出现控指针错误,

if(rs == null)
{
读取数据库错误
}esle{
if(rs.size() == 0){
//表示没有找到相应的记录
}
}
rs为null和rs没有记录不是一个概念!!
peter207 2003-12-12
  • 打赏
  • 举报
回复
试一下getFetchSize()
angelface 2003-12-12
  • 打赏
  • 举报
回复
if(rs.next())就行了
peter207 2003-12-12
  • 打赏
  • 举报
回复
wasNull()的意思是最后读取得字段值是否为null,而不是记录是否为空
shanxia 2003-12-12
  • 打赏
  • 举报
回复
int i=0;
while (rs.next())
{
i++;
}
if (i==0) rs为空
yebinlei2003 2003-12-12
  • 打赏
  • 举报
回复
if the "stmt" is wrong ,the "rs" will be null. And your programe will throw a fatal error.
so ,u must write as follows:
if(rs!=null)
{
while(rs.next())
{
//specific operation...
}
}
camelxz 2003-12-12
  • 打赏
  • 举报
回复
if(rs.next())
mzqali1 2003-12-12
  • 打赏
  • 举报
回复
java.sql.Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table1");
while (rs.next()) {
// retrieve and print the values for the current row
int i = rs.getInt("a");
String s = rs.getString("b");
float f = rs.getFloat("c");
System.out.println("ROW = " + i + " " + s + " " + f);
}
zsyzdw 2003-12-12
  • 打赏
  • 举报
回复
if(rs.next())
如果为false,不就是为空么

说得对
qjhaaaaa 2003-12-12
  • 打赏
  • 举报
回复
if(rs == null)
{
读取数据库错误
}
if(rs.size() == 0){
表示没有找到相应的记录
}
if(rs.next)
为false也表示为空
onizuka5211 2003-12-12
  • 打赏
  • 举报
回复
if(rs.next())
如果为false,不就是为空么

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧