我在提取表中的自动增加字段内容时遇到的问题
在表中,提取String 字段内容,用rs.getString("field");
可是我在提取索引字段的内容时,用rs.getInt("field");出现错误,我是照着书上做的,为什么还有错误,错误信息如下:
javax.servlet.ServletException: [Microsoft][SQLServer 2000 Driver for JDBC]ResultSet can not re-read row data for column 1.
at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:457)
at org.apache.jsp.view$jsp._jspService(view$jsp.java:158)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:1264)
at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:201)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:381)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:473)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:1264)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:215)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2366)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:462)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:163)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1005)
at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1098)
at java.lang.Thread.run(Thread.java:536)
Root Cause:
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]ResultSet can not re-read row data for column 1.
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.base.BaseResultSet.validateColumnIndex(Unknown Source)
at com.microsoft.jdbc.base.BaseResultSet.getInt(Unknown Source)
at com.microsoft.jdbc.base.BaseResultSet.getInt(Unknown Source)
at org.apache.jsp.view$jsp._jspService(view$jsp.java:140)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:1264)
at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:201)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:381)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:473)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:1264)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:215)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2366)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:462)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:163)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1005)
at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1098)
at java.lang.Thread.run(Thread.java:536)
问题点数:0、回复次数:11Top
1 楼ChDw(米)回复于 2003-04-04 12:07:19 得分 0
应该是SQL Server2000的Driver不支持同一个字段读取两次的原因
那没有什么方法,只好先读取出来,自己做转换吧Top
2 楼fengling181(斑马线)回复于 2003-04-04 12:09:30 得分 0
我也用了getString了,也不行,ID数据就是怎么也取不出来呀Top
3 楼lbdl(dreamweaver)回复于 2003-04-04 13:06:59 得分 0
rs.getlong(field)试试Top
4 楼lbdl(dreamweaver)回复于 2003-04-04 13:08:56 得分 0
不会把?你的代码里就写着:
rs.getString("field");
rs.getInt("field");
索引字段和string字段都叫field???
Top
5 楼fengling181(斑马线)回复于 2003-04-04 13:23:32 得分 0
我那是举例子,我用的是字段的名称Top
6 楼fengling181(斑马线)回复于 2003-04-04 13:24:52 得分 0
用了rs.getLong了,还是不行!Top
7 楼fengling181(斑马线)回复于 2003-04-04 14:41:57 得分 0
大家帮帮忙,为什么不行Top
8 楼wukongqiao(NullGFException)回复于 2003-04-04 14:55:29 得分 0
首先看看rs.next()了没有,实在不行用rs.getObject( field )试试Top
9 楼fengling181(斑马线)回复于 2003-04-04 15:04:00 得分 0
还是不行,总是无法提取字段,rs.next()也用了,都不行,我不知道是为什么?Top
10 楼ChDw(米)回复于 2003-04-04 15:07:15 得分 0
ResultSet can not re-read row data for column 1.
这个应该是指,你已经读取过第一列的数据了,但是你代码又再次读取
就是说
while(rs.next()) {
String a = rs.getString(1);//或者用对应的列名
String b = rs.getString(1);//这样SQL Server会报错的,你只能够避免读取两次的情况发生
}Top
11 楼fengling181(斑马线)回复于 2003-04-04 15:22:27 得分 0
我也不知道怎么办了,我全部代码如下,大家帮我挑挑毛病,谢谢各位了!!!!!
<%@ page contentType="text/html; charset=GBK" %>
<%@page import="java.sql.*"%>
<%@page import="java.util.*"%>
<jsp:useBean id="RegisterBean" class="opendb.opendb" />
<%
ResultSet rs=RegisterBean.executeQuery("SELECT * from JSP_SAYBOARD");
if (request.getParameter("delid")!="")
{
RegisterBean.executeUpdate("delete from JSP_SAYBOARD where id="+request.getParameter("delid"));
}
%>
<div align="center">
<center>
<table border="0" width="750" cellspacing="0" cellpadding="0" height="192">
<tr>
<td width="100%" height="192">
<div align="center">
<center>
<table border="0" width="50%" cellspacing="0" cellpadding="0">
<%while (rs.next())
{
%>
<tr>
<td width="22%" align="right"><font size="2">姓名:</font></td>
<td width="78%"><%=rs.getString("name")%></td>
</tr>
<tr>
<td width="22%" align="right"><font size="2">主题:</font></td>
<td width="78%"><%=rs.getString("object")%></td>
</tr>
<tr>
<td width="22%" align="right"><font size="2">意见:</font></td>
<td width="78%"><%=rs.getString("content")%></td>
</tr>
<%=rs.getObject("id")%>
<tr>
<td width="22%" align="right"><font size="2"><a href="view.jsp">删除:</a></font></td>
<td width="78%"></td>
</tr>
<%}%>
</table>
</center>
</div>
</td>
</tr>
</table>
</center>
</div>
Top




