CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  Web 开发

我在提取表中的自动增加字段内容时遇到的问题

楼主fengling181(斑马线)2003-04-04 11:56:25 在 Java / Web 开发 提问

在表中,提取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

相关问题

  • 提取ACCESS2000数据库的结构(包括表名、字段名、字段类型、字段长度、*说明)
  • 请问SQL语句如何在两个字段之间新增字段和提取表里字段名称?
  • 如何提取一个表中重复字段的行?????
  • 如何提取数据库中表的字段名
  • 如何用SQL语句提取A.DBF表中的所有字段名
  • 求助:如何从数据表中提取重复的字段值?
  • 如何将word编辑的文件存入sql server数据库一个表中的TEXT字段中,存入后如何从表中提取该字段?
  • 能java提取数据库字段名和字段属性吗?
  • 根据一个表中的某字段来决定是否从另一个表中提取信息
  • 关于提取DataGrid中字段的值

关键词

  • 字段
  • 内容
  • apache
  • servlet
  • jsp
  • service
  • jspservlet
  • 提取
  • jasper
  • httpservlet

得分解答快速导航

  • 帖主:fengling181

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo