0

for ループ内にネストされた while ループ内で作成された文字列の配列があります。これは、Derby で文字列の列から配列を作成することに関係していますが、簡単にするために一部を省略します。

完全なコードを提供しない理由は、問題が非常に具体的であるためです。データベース、結果セット、ステートメント、またはクエリに問題はありません。2 つのループの外側で配列にアクセスしているだけです。

//in the class, 
private int rowCount; //Count of the rows in my column of strings
public String stringArray[];


//in the method I am using
public void myMethod() { 
    rowCount = 4; //In my code it actually counts it, lets say its four though.
    stringArray = new stringArray[rowCount]; //set  
    for (int i = 0; i < rowCount; i++) {
         while (rs.next()/*rs is simply a result set of a statement executeQuery to select the correct table*/)
         {
             stringArray[i] = rs.getString(2); //2 is the column number in the table
         }
    }
//Need to access stringArray here.  When I try to print out values, it always prints out as null.
}

ありがとう!

4

2 に答える 2

1

ネストされたループに問題があります。各行 (i の各値 / 外側のループの各実行) に対して、結果セット全体を繰り返し処理し、stringArray[i]何度も上書きします (i は変化しません)。

2 番目の行 (i が 1 以上) に到達すると、rs.next() はすでに false になります。これは、外側のループの最初の繰り返しで rs 全体を走査したためです。

while(rs.next())おそらく、内部ループを単一の呼び出しに置き換える必要があるだけですrs.next()

于 2013-06-12T16:04:49.643 に答える