大神,求赐教,jsp 中结果集没有当前行 异常。 10
我是做一个抽取算法的,先取出结果集,判断里面有多少条记录,然后再产生一组随机数,使用absolute()这个方法来跳转到某一条记录,明明里面有那么多条记录,但是却出现结果...
我是做一个抽取算法的,先取出结果集,判断里面有多少条记录,然后再产生一组随机数,使用absolute()这个方法来跳转到某一条记录,明明里面有那么多条记录,但是却出现结果集没有当前行 异常。
代码如下:
public int extract_gap(JDBCBean db, String gap_sql, HttpServletResponse re){
int gapAmount = 0;
ResultSet extract_gapResult = (ResultSet) db.select(gap_sql);
try {
extract_gapResult.last();
gapAmount = extract_gapResult.getRow();
extract_gapResult.beforeFirst();
int i = getListNumber();
if(gapAmount <= 10){
while(extract_gapResult.next()){
user_ResultList[i] = new ArrayList<String>();
user_ResultList[i].add(0, extract_gapResult.getString("contents")); //内容
user_ResultList[i].add(1, extract_gapResult.getString("answer")); //答案
user_ResultList[i].add(2, extract_gapResult.getString("analyze")); //分析
i++;
}
}else{
//数据库中存在的记录数大于10
int limits = (int)gapAmount/10;
int[] rowNumber = extract(limits*10, gap_amount);//产生一组随机数
for(int j=0; j < rowNumber.length ; j++,i++){
extract_gapResult.absolute(rowNumber[j]); //跳到指定行号
user_ResultList[i] = new ArrayList<String>();
user_ResultList[i].add(0, extract_gapResult.getString("contents")); //内容
user_ResultList[i].add(1, extract_gapResult.getString("answer")); //答案
user_ResultList[i].add(2, extract_gapResult.getString("analyze")); //分析
try {
re.getWriter().println("----a---->"+i);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
return i;
} catch (SQLException e) {
e.printStackTrace();
wrong();
}
return gapAmount;
}
抛出异常:
com.microsoft.sqlserver.jdbc.SQLServerException: 结果集没有当前行。
小弟没分了,但是没办法,自己是菜鸟,弄好几天都不知道怎么解决,,
求大神能赐教....万分感激
还有就是随机数的产生是没有问题的,结果集也是能上下滚动的.... 展开
代码如下:
public int extract_gap(JDBCBean db, String gap_sql, HttpServletResponse re){
int gapAmount = 0;
ResultSet extract_gapResult = (ResultSet) db.select(gap_sql);
try {
extract_gapResult.last();
gapAmount = extract_gapResult.getRow();
extract_gapResult.beforeFirst();
int i = getListNumber();
if(gapAmount <= 10){
while(extract_gapResult.next()){
user_ResultList[i] = new ArrayList<String>();
user_ResultList[i].add(0, extract_gapResult.getString("contents")); //内容
user_ResultList[i].add(1, extract_gapResult.getString("answer")); //答案
user_ResultList[i].add(2, extract_gapResult.getString("analyze")); //分析
i++;
}
}else{
//数据库中存在的记录数大于10
int limits = (int)gapAmount/10;
int[] rowNumber = extract(limits*10, gap_amount);//产生一组随机数
for(int j=0; j < rowNumber.length ; j++,i++){
extract_gapResult.absolute(rowNumber[j]); //跳到指定行号
user_ResultList[i] = new ArrayList<String>();
user_ResultList[i].add(0, extract_gapResult.getString("contents")); //内容
user_ResultList[i].add(1, extract_gapResult.getString("answer")); //答案
user_ResultList[i].add(2, extract_gapResult.getString("analyze")); //分析
try {
re.getWriter().println("----a---->"+i);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
return i;
} catch (SQLException e) {
e.printStackTrace();
wrong();
}
return gapAmount;
}
抛出异常:
com.microsoft.sqlserver.jdbc.SQLServerException: 结果集没有当前行。
小弟没分了,但是没办法,自己是菜鸟,弄好几天都不知道怎么解决,,
求大神能赐教....万分感激
还有就是随机数的产生是没有问题的,结果集也是能上下滚动的.... 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询