RDBMSにアクセスする場合、取得するResultSetは通常行指向です。つまり、ResultSet ::next()を呼び出すたびに、カーソルは次の行に移動します。それがあなたのループの理由です
for (int i = 0; i < columncount; i++)
{
while (res->next())
{
...
}
}
最初の属性のみを表示しています。
通常、
などの内側と外側のループを切り替えますwhile (res->next())
{
for (int i = 0; i < columncount; i++)
{
...
}
}
ただし、実際に一度に1つの列にアクセスする必要がある場合は、ResultSetでカーソルを最初の行にリセットできるかどうかを確認する必要があります。そうでない場合は、データをキャッシュするか、同じSQLクエリを何度も発行する必要があります。