返回信息流com.microsoft.sqlserver.jdbc.SQLServerException: 结果集没有当前行
各种改还是没有用,求大牛解释
这是一条镜像帖。来源:北邮人论坛 / java / #17935同步于 2011/4/15
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
编译出错: 结果集没有当前行
happying
2011/4/15镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
看看代码
【 在 happying (happying) 的大作中提到: 】
: com.microsoft.sqlserver.jdbc.SQLServerException: 结果集没有当前行
: 各种改还是没有用,求大牛解释
【 在 IkariShinji 的大作中提到: 】
: 看看代码
public ArrayList<RealTimeInfo> list(){
ArrayList<RealTimeInfo> list=new ArrayList<RealTimeInfo>();
Connection conn=ConnectionFactory.getConnection();
PreparedStatement ps1=null;
PreparedStatement ps2=null;
PreparedStatement ps3=null;
ResultSet rs3=null;
ResultSet rs1=null;
ResultSet rs2=null;
try{
String sql1="select distinct area_id from areawatch";
ps1=conn.prepareStatement(sql1);
rs1=ps1.executeQuery();
while(rs1.next()){
int allnum=0;
RealTimeInfo realtimeinfo=new RealTimeInfo();
String areaid=rs1.getString(1);
realtimeinfo.setAreaid(areaid);
String sql2="select count(*) from areawatch where area_id='"+areaid+"'" ;
ps2=conn.prepareStatement(sql2);
rs2=ps2.executeQuery();
realtimeinfo.setAllnum(rs2.getInt(allnum));
String sql3="select count(*) from areawatch where area_id='"+areaid+"' and is_quality='1'" ;
ps3=conn.prepareStatement(sql3);
rs3=ps3.executeQuery();
realtimeinfo.setUnauthnum(1);
list.add(realtimeinfo);
}
}catch(Exception e){
e.printStackTrace();
return null;
}finally{
ConnectionFactory.closeObject(rs1, ps1, conn);
}
return list;
}
1、最好把错误堆栈贴上来
2、String areaid=rs1.getString(1); 参数改成字段名更清晰一些。
3、问题大概出在这 realtimeinfo.setAllnum(rs2.getInt(allnum)); 没有用next让rs2游标下移,默认的resultSet游标应该是在-1的位置上
3、问题大概出在这 realtimeinfo.setAllnum(rs2.getInt(allnum)); 没有用next让rs2游标下移,默认的resultSet游标应该是在-1的位置上