<%@ 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())循环体,为什么???
<%@ 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())循环体,为什么???
解决方案 »
- 急!如何让鼠标移动到一个超链接以后字体变红?
- tomcat部署java web工程运行时报错,大侠帮我解决下
- 一个让我疑惑的404错误
- 32岁高龄ASP转来做JAVA的可能性?
- JSP 用 jar文件
- 购物网站是怎么实现SESSION
- eclipse中第二次提交自动加入/servlet
- 新手提问:如何把http://java.sun.com/j2se/1.4.2/docs/api/ 上的java帮助文档全部下载?马上结贴
- weblucene的分页问题-用过weblucene的进
- 请教:最近看书到讲ArrayList类,但对与此相关的容量(Capacity)和大小(Size)不太好理解
- 如何获取异步加载的html页面的所有html源代码?
- jxl导出报表时,怎样合并单元格?
rs.getInt试试!你上面的例子如果你表里的数据类型是String的话你代码就没有错误如果是int类型你就修改一下试试
我建立的表是直接建立在数据库中了,请问,我需要不需要把这个表拷贝到项目里面。
是不是没有拷贝到项目里面的原因?现在我项目的任何目录下面都没有.sql文件。
请问如何拷贝,调试好就给分了。谢谢!
如果你的数据库连接是成功的,RS确实不为NULL
那么 RS有许多其他属性,你可以输出一下,看看是不是没有数据,例如 rs.first 可以返回一个boolean值判断有没有移动到第一行
那么把这句加上
if(rs != null)
{
rs.last(); //移到最后一行
System.out(rs.getRow());//得到当前行号,也就是记录数
}
汗,不需要,SQL文件是给你备份用的,不是什么执行文件,项目里也不需要,你现在应该要知道的 conn是否正确 ,rs是否有值
不代表你查出来数据了这个很明显是查询没有查询出来结果
返回的ResultSet 结果集中没有数据
他直接返回一个 size 为 0 的ResultSet 集合
举个例子
就相当于 ArrayList s = new ArrayList();
s 有指向 但是 s的size为0
rs.next()返回的是Object;
rs.hasNext()返回的才是bollen;
所以要改成rs.hasNext();
你说的是jdbc吗?hasNext是.net的吧。
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)
conn.creatstament()里加几个参数的
这样的话你就可以知道,是否是你的数据库没数据