功能仅适用于硬编码值

Ske*_*ith 2 java

这是我正在处理的代码:

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();   
      }   
  }
Run Code Online (Sandbox Code Playgroud)

suiteNum 是一个字符串向量

当我尝试将数据库结果添加到向量时,代码崩溃并出现此错误.

java.sql.SQLException: Column Index out of range, 0 > 1. 
Run Code Online (Sandbox Code Playgroud)

我有相同的代码片段在程序的其他地方工作,但我使用实数,如0,1和2而不是我,它工作正常.

因为我不知道数据库请求会有多少结果,所以我需要它是动态的,但它只能进行硬编码.我怎样才能让它适用于我?

NPE*_*NPE 6

参数to getString列索引,而不是您认为的行索引.该函数返回当前行中给定列的值,同时next将光标前进到下一行.

你可能意味着:

suiteNum.add(retRES.getString(1));
Run Code Online (Sandbox Code Playgroud)

在这种情况下,你可以i完全失败.