<%@ 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())循环体,为什么???

解决方案 »

  1.   

      String url="jdbc:sqlserver://localhost:1430;DatabaseName=test"; 这句中,端口应当是1433吧
      

  2.   

    查看你表里是否有数据!如果有数据的话确认数据的数据类型!如果是int类型的就把你的rs.getString 改成
    rs.getInt试试!你上面的例子如果你表里的数据类型是String的话你代码就没有错误如果是int类型你就修改一下试试
      

  3.   


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

  4.   


    如果你的数据库连接是成功的,RS确实不为NULL
    那么 RS有许多其他属性,你可以输出一下,看看是不是没有数据,例如 rs.first 可以返回一个boolean值判断有没有移动到第一行
      

  5.   

    你rs不是不空吗?rs != null
    那么把这句加上
    if(rs != null)
    {
    rs.last(); //移到最后一行
    System.out(rs.getRow());//得到当前行号,也就是记录数
    }
      

  6.   

    System.out(rs.getRow());这句改为System.out.println(rs.getRow())
      

  7.   


    汗,不需要,SQL文件是给你备份用的,不是什么执行文件,项目里也不需要,你现在应该要知道的 conn是否正确 ,rs是否有值
      

  8.   

    rs!=null 只代表rs这个变量不为空
    不代表你查出来数据了这个很明显是查询没有查询出来结果
    返回的ResultSet 结果集中没有数据  
    他直接返回一个 size 为 0 的ResultSet 集合
    举个例子
    就相当于  ArrayList s = new ArrayList();
    s 有指向 但是 s的size为0
      

  9.   

    现没有进入while(rs.next())循环体,为什么???
    rs.next()返回的是Object;
    rs.hasNext()返回的才是bollen;
    所以要改成rs.hasNext();
      

  10.   


    你说的是jdbc吗?hasNext是.net的吧。
      

  11.   

    如果表中有数据,你就看下表的结构,不同的数据类型取出的数据也不同,就如rs.getString(1),取出的数据类型应该为string 类型的数据才对
      

  12.   

    加上以后报错了org.apache.jasper.JasperException: An exception occurred processing JSP page /index.jsp at line 2926:   }
    27:  if(rs != null) 
    28: { 
    29: rs.last(); //移到最后一行 
    30: out.print(rs.getRow());//得到当前行号,也就是记录数 
    31: }
    32:  %>
    Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:505)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:398)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    root cause javax.servlet.ServletException: com.microsoft.sqlserver.jdbc.SQLServerException: 只进结果集不支持请求的操作。
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:862)
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791)
    org.apache.jsp.index_jsp._jspService(index_jsp.java:106)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    root cause com.microsoft.sqlserver.jdbc.SQLServerException: 只进结果集不支持请求的操作。
    com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source)
    com.microsoft.sqlserver.jdbc.SQLServerResultSet.throwNotScrollable(Unknown Source)
    com.microsoft.sqlserver.jdbc.SQLServerResultSet.verifyResultSetIsScrollable(Unknown Source)
    com.microsoft.sqlserver.jdbc.SQLServerResultSet.last(Unknown Source)
    org.apache.jsp.index_jsp._jspService(index_jsp.java:82)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
      

  13.   

    你的STATEMENT是只进的  用.frist啊。。last你要在
    conn.creatstament()里加几个参数的
      

  14.   

      while()应该这样写:while(rs!=null&&rs.next())
      这样的话你就可以知道,是否是你的数据库没数据