如何判断数据库中select取到的值是空 select空值判断 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 就是用这个判断的 boolean flag = false;//为空 if(rs2.next()){ flag = true;//不为空 } 现在的问题是rs2.next()返回值,不论数据库查询结果是不是空 都返回true,数据库查询结果是空时,rst2.getInt(1)=0 记得有个rst2.rowcount或者类似的方法,先看看拿回来的记录数行不? 应该使用if(rst2.next())判断,但是空值时if也为真我很怀疑。 楼主既然通过 rst2.getInt(1)=0;判断类数据库查询结果集为空,那问题不就解决了吗,将if条件改为判断rst2.getInt(1)是否为0不就可以了吗? 再提供一个解决方案:代码:if(rs.next()){list.add(rs.getString(1));while(rs.next()) {int i = 2; list.add(rs.getString(i++)); } return list; }else{ list.add("Sorry,No such User!"); return list; }解释一下:最外层用if/else循环,内层while循环,判断如果结果集不为空(rs.next()),那么执行if分支,此时“所谓的”指针已经指向第一条记录了,如果要继续取多条记录,那么只能先以list.add(rs.getString(1))这种方式取出第一条记录,而不能上来就直接while(rs.next()),因为如果这样做,那么此时取出的第一条记录实际上是结果集的第二条记录,既遗失了第一条记录(因为之前已经指向了第一条记录,继续while(rs.next())时是指向了第二条记录)。继续说,取出第一条记录之后,然后再以上面while循环体的方式取出剩下的记录(如果确实还有记录的话,如果没有记录了,循环体不执行,也不会影响效果)。 rst2.next()是可以判断是否有值的,不知道为什么你那儿不行。不过你代码写成下边这样不就把问题解决了吗?String Sqluser="select user from userinformation where UserId = "+UserId; ResultSet rst2=null; rst2=stm.executeQuery(Sqluser); if(rst2.getInt(1)!=0 && rst2.next()) returnvalue=rst2.getInt(1); rst2.next()是可以判断是否有值的不然while(rst2.next())的循环咋写的? 用rs2.getString(1) == null 来判断就行了 你先不要使用if(rst2.next())这种判断,虽然这样可以判断出是否存在记录,但是它的游标往下移了一位,你把控不好就不要这么做。最简单的,获取rs2.getInt(1)看看是否有值就行了。 可以这样,boolean xxoo=false;while(rst2.next()){xxoo=true;}if(!xxoo){为空;} 新人学习android开发遇到了一些问题 递归问题! java中如何调用IE,并将IE中的一些信息打印出来 谁能翻译出来就牛比了 新手求助分析程序运行结果! dispose()与System.exit(0)两方法有何区别? 关于super(s); 的问题... 一个JAVABEAN访问相对路径文件的问题 怎样禁止JBuilder 7里面的Project使用CVS 我是新手大家给点支持呀! Map.Entry求解! 关于JFrame,Canvas边界的问题
就是用这个判断的
boolean flag = false;//为空
if(rs2.next()){
flag = true;//不为空
}
数据库查询结果是空时,rst2.getInt(1)=0
代码:
if(rs.next()){
list.add(rs.getString(1));
while(rs.next())
{
int i = 2;
list.add(rs.getString(i++));
}
return list;
}else{
list.add("Sorry,No such User!");
return list;
}
解释一下:最外层用if/else循环,内层while循环,判断如果结果集不为空(rs.next()),那么执行if分支,此时“所谓的”指针已经指向第一条记录了,如果要继续取多条记录,那么只能先以list.add(rs.getString(1))这种方式取出第一条记录,而不能上来就直接while(rs.next()),因为如果这样做,那么此时取出的第一条记录实际上是结果集的第二条记录,既遗失了第一条记录(因为之前已经指向了第一条记录,继续while(rs.next())时是指向了第二条记录)。继续说,取出第一条记录之后,然后再以上面while循环体的方式取出剩下的记录(如果确实还有记录的话,如果没有记录了,循环体不执行,也不会影响效果)。
rst2.next()是可以判断是否有值的,不知道为什么你那儿不行。不过你代码写成下边这样不就把问题解决了吗?
String Sqluser="select user from userinformation where UserId = "+UserId;
ResultSet rst2=null;
rst2=stm.executeQuery(Sqluser);
if(rst2.getInt(1)!=0 && rst2.next())
returnvalue=rst2.getInt(1);
不然
while(rst2.next())的循环咋写的?
最简单的,获取rs2.getInt(1)看看是否有值就行了。
xxoo=true;
}if(!xxoo){
为空;
}