2011-12-09 32 views
1

运行此代码时出现“无效光标状态”错误。是什么导致“无效光标状态”错误?

我使用此代码从Access数据库中获取结果集,然后将其存储在表中。

的代码这部分是只从结果集中获取数据:

data=new Object[numberOfRows][numberOfColumns]; 
for(int i=0;i<numberOfRows;i++){ 
    int j=0; 
    while(j<numberOfColumns){ 
    // int colType=rsmd.getColumnType(j+1); 
    // System.out.println(colType); 
    data[i][j]=rs.getInt("course_id"); 
    System.out.print("0th: "+data[i][j]+" "); 
    j++; 
    data[i][j]=rs.getString("course_name"); 
    System.out.print("1st:"+data[i][j]+" "); 
    j++; 
    data[i][j]=rs.getString("course_date"); 
    System.out.print("2nd:"+data[i][j]+" "); 
    j++; 
    data[i][j]=rs.getString("course_number"); 
    System.out.print("3rd: "+data[i][j]+" "); 
    j++; 
    System.out.print("j:"+j); 
    } 
    System.out.print("Done line:"+i); 
} 
+0

它看起来像你有一些有用的调试输出。请把它包含在你的问题中。 – erickson

回答

2

我认为主要的问题是,你永远叫rs.next()滚动光标。但是,根据您对记录结构的说明,您的while循环看起来也是混乱的。尝试以下操作:

data=new Object[numberOfRows][numberOfColumns]; 
for(int i=0;i<numberOfRows;i++) { 
    if (!rs.next()) 
    throw new IllegalStateException(); 
    int j=0; 
    // int colType=rsmd.getColumnType(j+1); 
    // System.out.println(colType); 
    data[i][j]=rs.getInt("course_id"); 
    System.out.print("0th: "+data[i][j++]+" "); 
    data[i][j]=rs.getString("course_name"); 
    System.out.print("1st:"+data[i][j++]+" "); 
    data[i][j]=rs.getString("course_date"); 
    System.out.print("2nd:"+data[i][j++]+" "); 
    data[i][j]=rs.getString("course_number"); 
    System.out.print("3rd: "+data[i][j++]+" "); 
    while(j<numberOfColumns) { 
    data[i][j]=rs.getString(j + 1); 
    System.out.print(j+"th: "+data[i][j++]+" "); 
    } 
    System.out.println(); 
    System.out.println("Done line:"+i); 
} 
+0

我有一个表的“课程”命名,该表包括 4个领域分别是:“COURSE_ID”,“课程名称”,“course_date”和“课程编号” >>这里是我的表看起来像: COURSE_ID \t这里COURSE_NAME \t course_date \t课程编号 数据数据数据数据 –

+0

>>是我的表看起来像: COURSE_ID \t课程名称\t course_date \t课程编号 数据数据数据数据 数据数据数据数据 数据数据数据数据 数据数据数据数据 我使用第一个循环来获取行数,并且我使用第二个循环来获取列数,这将有助于了解每行中coulmns的数量。我不明白为什么我不需要它,如果我没有使用它,那么我将无法获得数据! –

+0

@GhadeerWalid我现在了解你的结构。这不是我从你的代码中猜到的。我会更新我的答案。 – erickson

相关问题