本人在学着做一个有上传,下载,增删改查的小项目,从页面输入信息到数据 库时,可以查看上传的文件和一些基本信息,可是点修改时,如果上传了文件,刚会提示,invalid column name :ID 如果在输入信息时不上传文件,点击修改不会报错。我的数据库的相关表涉及到的我也做了检查,有ID这个字段,希望高手能在线帮忙看下程序,我的QQ:348714380

解决方案 »

  1.   

    信息太少。
    lz最好把sql和出错的完整log发出来。
      

  2.   

    2010-9-8 17:24:04 org.apache.catalina.core.StandardWrapperValve invoke
    严重: Servlet.service() for servlet jsp threw exception
    java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Invalid column name: ID
    at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
    at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
    at com.microsoft.jdbc.base.BaseResultSet.getColumnOrdinal(Unknown Source)
    at com.microsoft.jdbc.base.BaseResultSet.getInt(Unknown Source)
    at org.apache.jsp.kygluser.project.xm_005fmodify_jsp._jspService(xm_005fmodify_jsp.java:791)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
    at java.lang.Thread.run(Thread.java:619)
      

  3.   

    log还是没有看到出错的语句。。
    lz把执行的那句sql发出来看看。。
    程序不会骗人的,应该还是sql语句有问题导致的。
    找到了那个sql以后,lz直接到数据库里去执行一下看看能否正确执行。。
      

  4.   

    Invalid column name: IDtry{}catch(SQLException e){
    System.out.println(sql);
    }
    把SQL放进SQLSERVER执行
      

  5.   

     是啊,我也想去找这个SQL,还没有找到
      

  6.   

    你执行了什么操作呢?
    一步一步的查代码,应该就可以找到那个出错的sql了
      

  7.   

    我在找找我的SQL语句,如果找到了我在贴上来,大家帮解决下,谢谢您lzw
      

  8.   

    java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Invalid column name: ID肯定是你的sql语句里的这个字段跟数据库里的字段没有对应上
    确定有这个id么?是不是写错了
      

  9.   

    [Quote=引用 11 楼 shanxmxj 的回复:]
    Java code
    java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Invalid column name: ID
    肯定是你的sql语句里的这个字段跟数据库里的字段没有对应上
    确定有这个id么?是不是写错了
    [/Quote我再仔细找下啊。大家一定要再回来看贴啊
      

  10.   

    // Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
    // Jad home page: http://kpdus.tripod.com/jad.html
    // Decompiler options: packimports(3) fieldsfirst ansi space 
    // Source File Name:   xmauthor.javapackage xmqk;import db.conn;public class xmauthor extends conn
    { String xmbh;
    String name;
    String xb;
    String csrq;
    String xw;
    String zc;
    String xzzw;
    String rcjh;
    String lxdh;
    String dzyx;
    String yzbm;
    String loginname;
    String sfzh;
    String ssdw;
    String xmzr;
    String cdrw;
    int id;
    String sql;
    String sql2; public xmauthor()
    {
    } public String getXmbh()
    {
    return xmbh;
    } public void setXmbh(String xmbh)
    {
    this.xmbh = xmbh;
    } public String getCsrq()
    {
    return csrq;
    } public void setCsrq(String csrq)
    {
    this.csrq = csrq;
    } public String getDzyx()
    {
    return dzyx;
    } public void setDzyx(String dzyx)
    {
    this.dzyx = dzyx;
    } public String getSsdw()
    {
    return ssdw;
    } public void setSsdw(String ssdw)
    {
    this.ssdw = ssdw;
    } public String getLxdh()
    {
    return lxdh;
    } public void setLxdh(String lxdh)
    {
    this.lxdh = lxdh;
    } public String getSfzh()
    {
    return sfzh;
    } public void setSfzh(String sfzh)
    {
    this.sfzh = sfzh;
    } public String getName()
    {
    return name;
    } public void setName(String name)
    {
    this.name = name;
    } public String getRcjh()
    {
    return rcjh;
    } public void setRcjh(String rcjh)
    {
    this.rcjh = rcjh;
    } public String getXb()
    {
    return xb;
    } public void setXb(String xb)
    {
    this.xb = xb;
    } public String getLoginname()
    {
    return loginname;
    } public void setLoginname(String loginname)
    {
    this.loginname = loginname;
    } public String getXw()
    {
    return xw;
    } public void setXw(String xw)
    {
    this.xw = xw;
    } public String getXzzw()
    {
    return xzzw;
    } public void setXzzw(String xzzw)
    {
    this.xzzw = xzzw;
    } public String getZc()
    {
    return zc;
    } public void setZc(String zc)
    {
    this.zc = zc;
    } public String getYzbm()
    {
    return yzbm;
    } public void setYzbm(String yzbm)
    {
    this.yzbm = yzbm;
    } public String getXmzr()
    {
    return xmzr;
    } public void setXmzr(String xmzr)
    {
    this.xmzr = xmzr;
    } public String getCdrw()
    {
    return cdrw;
    } public void setCdrw(String cdrw)
    {
    this.cdrw = cdrw;
    } public int getId()
    {
    return id;
    } public void setId(int id)
    {
    this.id = id;
    } public boolean insertX_author()
    {
    sql = "insert into X_author(X_xmbh,X_Name,X_xb,X_csrq,X_xw,X_zc,X_xzzw,X_rcjh,X_lxdh,X_dzyx,X_yzbm,LoginName,X_sfzh,X_ssdw,X_xmzr,X_cdrw) values('" + xmbh + "','" + name + "','" + xb + "','" + csrq + "','" + xw + "','" + zc + "','" + xzzw + "','" + rcjh + "','" + lxdh + "','" + dzyx + "','" + yzbm + "','" + loginname + "','" + sfzh + "','" + ssdw + "','" + xmzr + "','" + cdrw + "')";
    boolean flag = super.executeUpdate(sql);
    return flag;
    } public boolean deleteX_author()
    {
    sql = "delete from X_author where ID='" + id + "'";
    boolean flag = super.executeUpdate(sql);
    return flag;
    } public boolean xgX_author()
    {
    sql = "update X_author set X_xmbh='" + xmbh + "',X_Name='" + name + "',X_xb='" + xb + "',X_csrq='" + csrq + "',X_xw='" + xw + "',X_zc='" + zc + "',X_xzzw='" + xzzw + "',X_rcjh='" + rcjh + "',X_lxdh='" + lxdh + "',X_dzyx='" + dzyx + "',X_yzbm='" + yzbm + "',LoginName='" + loginname + "',X_sfzh='" + sfzh + "',X_ssdw='" + ssdw + "',X_xmzr='" + xmzr + "',X_cdrw='" + cdrw + "' where ID='" + id + "'";
    boolean flag = super.executeUpdate(sql);
    return flag;
    }
    }
      

  11.   

    没有找到具体修改的id在哪里,恳请大侠能加我QQ帮我看看
      

  12.   

    确定表里面有这个 ID 字段吗?确定你的 ID 列没有使用双引号括起来吗(双引号括起来的对象名是区分大小写的并且可以包括汉字和空格等)?
      

  13.   

    确定有ID 字段,噢。是用双引号括起来了,括起来的ID和表里的大小写一样。可以吗?
      

  14.   

    有可能是你的数据ID是自增的  而你强行给值,或者是你的id不是自增而你又没有给值
      

  15.   

    sql = "delete from X_author where ID='" + id + "'";
    sql = "update X_author set X_xmbh='" + xmbh + "',X_Name='" + name + "',X_xb='" + xb + "',X_csrq='" + csrq + "',X_xw='" + xw + "',X_zc='" + zc + "',X_xzzw='" + xzzw + "',X_rcjh='" + rcjh + "',X_lxdh='" + lxdh + "',X_dzyx='" + dzyx + "',X_yzbm='" + yzbm + "',LoginName='" + loginname + "',X_sfzh='" + sfzh + "',X_ssdw='" + ssdw + "',X_xmzr='" + xmzr + "',X_cdrw='" + cdrw + "' where ID='" + id + "'";报错的应该是这2个地方 
    where ID= 
      

  16.   

    楼主解决了吗?我也遇到相同的问题,明明数据库中有那个字段,为什么还报错说Invalid column name