0

我正在尝试检查表中的所有帐户名称,然后将它们存储到字符串数组中。

目前,这就是我用来这样做的:

for(int Rowi = 0; Rowi < rowCount + 1; Rowi ++){
            rs = stmt.executeQuery("SELECT AccountName FROM accounts WHERE AccountID = " + Rowi);
            while(rs.next()){
                String test = rs.getString("AccountName");
                System.out.println("asd: " + test);
                accounts[Rowi] = test;                  
            }
        }

        for(int i = 0; i < rowCount; i ++){
            System.out.println("SAVED INFO: " + accounts[rowCount]);
        }

这是我得到的结果:

asd: FatalMind 
asd: Shurin
asd: test
SAVED INFO: test
SAVED INFO: test
SAVED INFO: test

我不明白为什么它正确地逐行提取每条记录,但没有像我告诉它的那样保存它,它只保存所有索引中的最后一个值。很明显我做的不对。

4

2 回答 2

4

在您的最后一个循环中,您需要使用i,而不是索引帐户数组rowCount

所以改变

System.out.println("SAVED INFO: " + accounts[rowCount]);

System.out.println("SAVED INFO: " + accounts[i]);
                                            ^^^
于 2013-11-07T17:20:42.223 回答
1

因为rowCount在你的循环中没有改变:

for(int i = 0; i < rowCount; i ++){
    System.out.println("SAVED INFO: " + accounts[rowCount]);
}

我假设rowCount对应于最后一个索引。所以你告诉它在最后一个索引处打印三遍。(或者,更具体地说,rowCount次数。)

我假设您打算i改用:

for(int i = 0; i < rowCount; i ++){
    System.out.println("SAVED INFO: " + accounts[i]);
}
于 2013-11-07T17:21:08.787 回答