首都机场t2住宿:jsp操作数据库的问题 重复出现<%=rs.getInt("ID")%>出错

来源:百度文库 编辑:神马品牌网 时间:2024/04/30 05:40:01
我用的是ODBC数据源做的 如果出现两个
<%=rs.getInt("ID")%>就会出错 出现一个则编译通过 错误代码如下

exception

javax.servlet.ServletException: No data found
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
org.apache.jsp.main_jsp._jspService(main_jsp.java:116)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

root cause

java.sql.SQLException: No data found
sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7139)
sun.jdbc.odbc.JdbcOdbc.SQLGetDataInteger(JdbcOdbc.java:3812)
sun.jdbc.odbc.JdbcOdbcResultSet.getDataInteger(JdbcOdbcResultSet.java:5642)
sun.jdbc.odbc.JdbcOdbcResultSet.getInt(JdbcOdbcResultSet.java:585)
sun.jdbc.odbc.JdbcOdbcResultSet.getInt(JdbcOdbcResultSet.java:603)
org.apache.jsp.main_jsp._jspService(main_jsp.java:98)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

<tr>
<td><%=rs.getString("name")%></td>
<td><%=rs.getString("age")%></td>
<td><%=rs.getString("day")%></td>
<td><%=rs.getString("phone")%></td>
<td><a href="modify.jsp?id=<%=rs.getInt("ID")%>">修改</a></td>
<td><a href="delete.jsp?id=<%=rs.getInt("ID")%>">删除</a></td>

</tr>
先前用两次<%=rs.getInt("ID")%>没有报错 我只是换了一个表在做就报错了 不明原因 还请指点

<% while(rs.next()) %>
<tr>
<td><%=rs.getString("name")%></td>
<td><%=rs.getString("age")%></td>
<td><%=rs.getString("day")%></td>
<td><%=rs.getString("phone")%></td>
<td><a href="modify.jsp?id=<%=rs.getInt("ID")%>">修改</a></td>
<td><a href="delete.jsp?id=<%=rs.getInt("ID")%>">删除</a></td>

</tr>
<%}%>
换表要和以前的一样,表名不能变,里面要有数据,ID字段要为int型。

那就用一次就可以了啊
比如定义一个变量:rs_id=rs.getInt("ID")
然后下面
<td><a href="modify.jsp?id="+rs_id>修改</a></td>
<td><a href="delete.jsp?id="+rs_id>删除</a></td>
这样就可以解决啊

用rs.getInt("ID")之前检查rs.next()了吗?No data found 是说没有找到纪录,你的表是不是空的?