日期:2014-05-17  浏览次数:20759 次

50分问为什么进不了while循环??在线等---
<%@ page contentType="text/html;charset=gb2312"%> 
<%@ page import="java.sql.*"%> 
<html> 
<body> 
<% 
  Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
  String url="jdbc:sqlserver://localhost:1430;DatabaseName=test"; 
  String user="sa"; 
  String password="123"; 
  Connection conn=null;
  conn=DriverManager.getConnection(url,user,password); 
  if(conn!=null){ out.print(" conn!=null"); }
  Statement stmt=conn.createStatement(); 
  String sql="select * from Table_1"; 
  ResultSet rs= stmt.executeQuery(sql); 
 %>
  <%
  while(rs.next()) { 
  out.print(" 进了循环"); 
  out.print(rs.getString(1)); 
  } 
  if(rs!=null){ out.print(" rs!=null"); }
  %>
  <%rs.close(); 
  stmt.close(); 
  conn.close(); 
  %> 

</body> 
</html> 
table1是我建立的一个表,a,b两列的值都是int类型的,不为空。
打印结果是
conn!=null rs!=null 
发现没有进入while(rs.next())循环体,为什么???

------解决方案--------------------
一种可能表中没数据!
------解决方案--------------------
探讨
引用:
表中可能是没有数据。
你直接进这个表有数据吗?是不是你刚插入进去,没有提交。


我建立的表是直接建立在数据库中了,请问,我需要不需要把这个表拷贝到项目里面。
是不是没有拷贝到项目里面的原因?现在我项目的任何目录下面都没有.sql文件。
请问如何拷贝,调试好就给分了。谢谢!

------解决方案--------------------
rs!=null 只代表rs这个变量不为空
不代表你查出来数据了

这个很明显是查询没有查询出来结果
返回的ResultSet 结果集中没有数据
他直接返回一个 size 为 0 的ResultSet 集合
举个例子
就相当于 ArrayList s = new ArrayList();
s 有指向 但是 s的size为0
------解决方案--------------------
俺也学学
------解决方案--------------------
探讨
现没有进入while(rs.next())循环体,为什么???
rs.next()返回的是Object;
rs.hasNext()返回的才是bollen;
所以要改成rs.hasNext();