Java 我不知道';即使结果集已满,也无法进入循环
我有一个结果集不是空的。它包含6列。但是如果我想使用循环,什么都不会发生 如果在SQL Server Management Studio中使用与Java代码中相同的参数调用存储过程,则会得到一个结果: 几分钟前一切正常Java 我不知道';即使结果集已满,也无法进入循环,java,Java,我有一个结果集不是空的。它包含6列。但是如果我想使用循环,什么都不会发生 如果在SQL Server Management Studio中使用与Java代码中相同的参数调用存储过程,则会得到一个结果: 几分钟前一切正常 // That doesn't work because I can't get into the loop if (con != null) { String an_id = "bkoubik"; String AS_Auf
// That doesn't work because I can't get into the loop
if (con != null) {
String an_id = "bkoubik";
String AS_Aufruf = "exec BfV_Web.sp_Anwender_Start\n@AnwenderID = ?";
try {
PreparedStatement STMT = con.prepareStatement(AS_Aufruf);
STMT.setString(1, an_id);
ResultSet rs = STMT.executeQuery();
//THIS IF STATEMENT IS NOT ENTERING, SO WHY THEN THE WHILE LOOP
IS NOT WORKING ?
if (!rs.next() ) {
System.out.println("no data");
}
ResultSetMetaData meta = rs.getMetaData();
int intRS = meta.getColumnCount();
//THE LOOP IS NOT ENTERING
while (rs.next()) {
[...]
}
intRS是列计数,而不是行计数。您的rs可能是空的。对
rs的第一次调用。下一次调用(
)(在循环之前)已经占用了唯一的一行,因此下一次调用(在while
中)将返回false。您是否尝试在while循环之前、内部和之后添加简单的print语句?请阅读“如何创建打印语句”。然后使用链接改进您的问题(不要通过评论添加更多信息)。你的代码也很重要。提示:不要使用图像。相反:使用打印语句将相关信息打印为文本,并将其放入问题中。格式良好的文本。rs.next()
遍历行,而不是列。另外,您似乎在掩盖代码可能正在做的其他事情。旁注:您不应该在存储过程中使用sp_u
前缀。微软已经这样做了,而且你确实有可能在将来的某个时候发生名称冲突。最好只是简单地避免使用sp.
并使用其他东西作为前缀,或者根本不使用前缀!请不要在你的问题中包含图像,因为文本什么时候会更好。