如何判断一个结果集为空的呢?

piaomiao_jxz 2003-06-18 10:15:58
我按照书上说的,创建一个可滚动的ResultSet。
con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
可是用isAfterLast()方法时出现下面错误。
java.sql.SQLException: [Microsoft][ODBC 驱动程序 管理器] 无效的光标状态
...全文
241 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
piaomiao_jxz 2003-06-18
  • 打赏
  • 举报
回复
可是老出现这个错误的提示,是什么原因啊?
错误提示:
java.sql.SQLException: Invalid handle
Yanbin_Q 2003-06-18
  • 打赏
  • 举报
回复
就是看rs.next()的返回值是不是为真
liusoft 2003-06-18
  • 打赏
  • 举报
回复
这些操作都是JDBC2.0中的
nboys 2003-06-18
  • 打赏
  • 举报
回复
改为:con.createStatement(ResultSet.TYPE_
FORWARD_ONLY,ResultSet.CONCUR_READ_ONLY);
whatwhynot 2003-06-18
  • 打赏
  • 举报
回复
ResultSet result_stmt=null;
......

if(result_stmt.next())
{......}
AHUA1001 2003-06-18
  • 打赏
  • 举报
回复
我觉得你的错误不是结果集的问题,而是游标的问题。
其实最好的方式就是
if(rs!=null)//如果不为空
{}
另外复杂一些的有
if(rs.next)//如果rs为空,rs.next返回true.
{}
XKP 2003-06-18
  • 打赏
  • 举报
回复
········
piaomiao_jxz 2003-06-18
  • 打赏
  • 举报
回复
将ASCII码转换成字符串的函数是什么?
判断是否为数值的函数是什么?
XKP 2003-06-18
  • 打赏
  • 举报
回复
sun.jdbc.odbc.JdbcOdbcDriver
好像真的是不支持那个方法~~~~


String sql="select xmdh from xtdm where fldh='"+fldh+"' order by xmdh desc";
rs=conn.executeQuery(sql);
if (!rs.next()){
xmdh="1";
}
else{
xmdh=String.valueOf(rs.getInt("xmdh")+1);
}

你这样做有什么问题吗?


还有,结果集为空的判断以前有好多的贴子
你搜搜看先
piaomiao_jxz 2003-06-18
  • 打赏
  • 举报
回复
我是想弄一个当rs的记录集为空时,xmdh为1,不为空时,xmdh为库中最大的值加1.
String sql="select xmdh from xtdm where fldh='"+fldh+"' order by xmdh desc";
rs=conn.executeQuery(sql);
if (!rs.next()){
xmdh="1";
}
else{
xmdh=String.valueOf(rs.getInt("xmdh")+1);
}
piaomiao_jxz 2003-06-18
  • 打赏
  • 举报
回复
chili1979(中国龙)
当里面一条记录都没有的时候,正常。
当有一条记录的时候,就报错了。
错误提示:
java.sql.SQLException: Invalid handle

XKP(低等下人)
是用sun.jdbc.odbc.JdbcOdbcDriver

owenyang 2003-06-18
  • 打赏
  • 举报
回复
该驱动可能不支持isAfterLast()方法.
XKP 2003-06-18
  • 打赏
  • 举报
回复
你是用odbc:jdbc的驱动吗?
如果是的话,好像不能用isAfterLast()
chili1979 2003-06-18
  • 打赏
  • 举报
回复
判断为空,简单的 if(!rs.next()){ 为空;}

稍微复杂的:
if(rs!=null)
rs.next();
if(0==rs.getrow()){
空;}
zxl19790710 2003-06-18
  • 打赏
  • 举报
回复
if(rs.next()){
}
  • 打赏
  • 举报
回复
其实可以变通一下,
int count=0;
while(rs.next()) count++;
if(count>0) //your statement
else //your statement
zgysc 2003-06-18
  • 打赏
  • 举报
回复
select count(*) from biao where.....
只要值=0不就是结果集为空吗!!,不知道你是不是这个意思
piaomiao_jxz 2003-06-18
  • 打赏
  • 举报
回复
高手,高手在哪里,
帮帮我吧

81,092

社区成员

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

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