此代码返回除第一行之外的每一行。我看不出它有什么问题?我怎样才能让它包括第一个?
stmt = con.createStatement();
ResultSet res=stmt.executeQuery("SELECT * FROM Orders ORDER BY OrderID");
if (res.next())
{
ResultSetMetaData rsmd=res.getMetaData();
int columnCount=rsmd.getColumnCount();
for (int i = 1; i<= columnCount; i++) {
columnHeading=columnHeading+"\t"+rsmd.getColumnName(i);
}
System.out.println(columnHeading);
while(res.next()) {
for (int i= 1; i<= columnCount; i++) {
System.out.print("\t"+res.getString(i));
}
System.out.println("\n");
}
}
最佳答案
您正在调用 res.next()
两次 - 一次在这里:
if (res.next())
这里:
while (res.next())
在 if
语句和 while
语句之间,您正在“查看”第一行 - 但当您进入 while
循环体,你已经在第二行了。
最简单的解决办法可能是改变:
while (res.next())
{
}
致:
do
{
} while (res.next());
关于java - 结果集元数据不返回第一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16004306/