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)

这是怎么回事?要怎么解决呀?
展开
 我来答
qhfbesc
2011-05-09 · TA获得超过858个赞
知道小有建树答主
回答量:1035
采纳率:33%
帮助的人:637万
展开全部
经过测试:结论是以上的错误与你的程序无关,与你的数据库也无关,更无需引入什么包,那么关键在于:JDBC-ODBC的配置.配置如下:我的电脑/控制面板/性能和维护/管理工具/双击"数据源 (ODBC)"/系统DSN/添加/SQLSERVER/名称:bank,服务器:本机名/....选上更改默认数据库名(选择bank_1所在的数据库名)...完成就OK了.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lcyydnx110
2011-05-10
知道答主
回答量:9
采纳率:0%
帮助的人:0
展开全部
同样的一条数据中的字段只能被调用一次,再次调用的时候就会报错,可以用对象将其接受在使用,祝你好运 ,还有个问题,你再循环外面调用rs.next方法,不行吧,循环里面已经把所有结果遍历完了,所以循环外就报没有结果了呗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
斑库云店通
2011-05-09 · TA获得超过407个赞
知道小有建树答主
回答量:368
采纳率:0%
帮助的人:327万
展开全部
我估计是这样的,你写的要获取页面叫EquipmentID的值,并且查询是否匹配你的条件,但是你页面在加载的时候,EquipmentID获取到的肯定是空值,要报错的
追问
就算去掉String EquipmentID=request.getParameter("EquipmentID");不从前面的页面取值
直接用String sql="select * from EquipmentTable where EquipmentID=1";
ResultSet rs=stmt1.executeQuery(sql);
查找也一样会报错是怎么回事?
追答
那就要看看你的数据源配置了,没有返回结果集,估计你配置出了问题
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2011-05-09 · TA获得超过1243个赞
知道小有建树答主
回答量:2126
采纳率:55%
帮助的人:674万
展开全部
好好看看列名打对没有,还有数据类型
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式