JSP中使用SQL数据库出错 ResultSet 没有当前行。
<%Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();Stringu...
<%Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
String url="jdbc:sqlserver://localhost:1433;databaseName=slxt";
String user="sa";
String password="12345";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt1=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
String EquipmentID=request.getParameter("EquipmentID");
String sql="select * from EquipmentTable where EquipmentID=1";
ResultSet rs=stmt1.executeQuery(sql);
while(rs.next()) {
session.setAttribute("EquipmentID",rs.getString("EquipmentID"));//将id保存到session中
%>
<%}%>
<p >被试验设备标识符:<%=rs.getString("EquipmentID")%> </p>
……
<p > </p>
<%rs.close();
stmt1.close();
conn.close();
%>
以上代码测试时出现以下错误
org.apache.jasper.JasperException: An exception occurred processing JSP page /jg2.jsp at line 53
50: %>
51: <%}%>
52:
53: <p >被试验设备标识符:<%=rs.getString("EquipmentID")%> </p>
54: <p >被试验设备名称: </p>
55: <p >送检单位编号: </p>
56: <p >送检日期: </p>
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:519)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:410)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause
javax.servlet.ServletException: com.microsoft.sqlserver.jdbc.SQLServerException: ResultSet 没有当前行。
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:865)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:794)
org.apache.jsp.jg2_jsp._jspService(jg2_jsp.java:150)
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:386)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
这是怎么回事?要怎么解决呀? 展开
String url="jdbc:sqlserver://localhost:1433;databaseName=slxt";
String user="sa";
String password="12345";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt1=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
String EquipmentID=request.getParameter("EquipmentID");
String sql="select * from EquipmentTable where EquipmentID=1";
ResultSet rs=stmt1.executeQuery(sql);
while(rs.next()) {
session.setAttribute("EquipmentID",rs.getString("EquipmentID"));//将id保存到session中
%>
<%}%>
<p >被试验设备标识符:<%=rs.getString("EquipmentID")%> </p>
……
<p > </p>
<%rs.close();
stmt1.close();
conn.close();
%>
以上代码测试时出现以下错误
org.apache.jasper.JasperException: An exception occurred processing JSP page /jg2.jsp at line 53
50: %>
51: <%}%>
52:
53: <p >被试验设备标识符:<%=rs.getString("EquipmentID")%> </p>
54: <p >被试验设备名称: </p>
55: <p >送检单位编号: </p>
56: <p >送检日期: </p>
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:519)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:410)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause
javax.servlet.ServletException: com.microsoft.sqlserver.jdbc.SQLServerException: ResultSet 没有当前行。
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:865)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:794)
org.apache.jsp.jg2_jsp._jspService(jg2_jsp.java:150)
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:386)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
这是怎么回事?要怎么解决呀? 展开
4个回答
展开全部
经过测试:结论是以上的错误与你的程序无关,与你的数据库也无关,更无需引入什么包,那么关键在于:JDBC-ODBC的配置.配置如下:我的电脑/控制面板/性能和维护/管理工具/双击"数据源 (ODBC)"/系统DSN/添加/SQLSERVER/名称:bank,服务器:本机名/....选上更改默认数据库名(选择bank_1所在的数据库名)...完成就OK了.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
同样的一条数据中的字段只能被调用一次,再次调用的时候就会报错,可以用对象将其接受在使用,祝你好运 ,还有个问题,你再循环外面调用rs.next方法,不行吧,循环里面已经把所有结果遍历完了,所以循环外就报没有结果了呗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我估计是这样的,你写的要获取页面叫EquipmentID的值,并且查询是否匹配你的条件,但是你页面在加载的时候,EquipmentID获取到的肯定是空值,要报错的
追问
就算去掉String EquipmentID=request.getParameter("EquipmentID");不从前面的页面取值
直接用String sql="select * from EquipmentTable where EquipmentID=1";
ResultSet rs=stmt1.executeQuery(sql);
查找也一样会报错是怎么回事?
追答
那就要看看你的数据源配置了,没有返回结果集,估计你配置出了问题
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
好好看看列名打对没有,还有数据类型
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询