这是我正在处理的代码:

if(connection.doDatabaseRead(findSQL))
  {
      ResultSet retRES = connection.getResultSet();

      int i = 0;

      // did we find anything
      while( retRES.next() )
      {
          //read result from query
          suiteNum.add(retRES.getString(i)); // this is the problem

          i++;

          //let other threads breathe
          Thread.yield();
      }
  }


suiteNum是字符串向量

当我尝试将数据库结果添加到向量中时,代码因该错误而崩溃。

java.sql.SQLException: Column Index out of range, 0 > 1.


我在程序的其他地方也有相同的代码,但是我使用实数(例如0、1和2)代替了i,所以效果很好。

由于我不知道数据库请求有多少个结果,因此我需要它是动态的,但是只能硬编码。
我该如何与我合作?

最佳答案

getString的参数是列索引,而不是您似乎认为的行索引。该函数返回当前行中给定列的值,而next将光标移至下一行。

您可能是说:

suiteNum.add(retRES.getString(1));


在这种情况下,您可能会完全丢失i

10-08 15:20