JDBC中的ResultSet使用问题

for(inti=0;i<2;i++){ResultSetrs=dbmd.getColumns(null,null,tbLists.get(i),"%");Stringw... for(int i=0;i<2;i++){
ResultSet rs=dbmd.getColumns(null, null, tbLists.get(i), "%");
String where_stmt="";
boolean condition=rs.next();
while(condition){
String col_name=rs.getString("COLUMN_NAME");
String type=rs.getString("TYPE_NAME");
if(type.equals("varchar")){
where_stmt+=" "+col_name+" like \'%"+"abc"+"%\' ";
condition=rs.next();
if(condition==true) where_stmt+="or";
}
}
rs.close();
}
问题:当循环次数是1的话运行没有问题,但是当循环次数为2是就会显示“无效的描述符索引”。(我用的是JDBC-ODBC桥接的方式)
请问如何解决?
展开
 我来答
haiyuKing
2011-04-24 · TA获得超过651个赞
知道小有建树答主
回答量:94
采纳率:0%
帮助的人:133万
展开全部
是rs.close();这一句的错误,应该把这一句放到for循环的外面。
因为当放在循环里面的话,循环第一次的时候就把rs关闭了,循环第二次的时候rs并没有开,所以就出错了。

呀,回答的好像不对,也不能取消回答。。。。,郁闷
追问
呵呵~不过还是要谢谢你!我对这个ResultSet使用很郁闷!
追答
恩,我也是,那就多看看关于数据库连接的Java小程序。估计就会突然明白了
悲风你好
2011-04-24 · TA获得超过124个赞
知道答主
回答量:116
采纳率:0%
帮助的人:101万
展开全部
这是因为你的ResultSet指向的永远都是第一条记录
你这样写就没问题了
while(rs.next()){......}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式