executeQuery只能执行查询,你应该用stmt.executeUpdate(sql);返回值是int

解决方案 »

  1.   

    应该用Statement的executeUpdate(String sql)  返回类型是int
    executeQuery()只能用于查询
      

  2.   

    同意楼上:int iCount=stmt.executeUpdate(sql);
      

  3.   

    顺便问一个,我在list.jsp中连接了数据库,并且查询了记录,页面在有一增加按钮,点击增加按钮即可 跳到另一 add.jsp,代码如下:
    <%@ page contentType="text/html;charset=gb2312"%> 
    <%@ page import="java.sql.*"%>
    <html>
    <HEAD>
    <Script Language='JavaScript'><!--
    function setFocus(){
    document.forms[0].citycode.focus();
    }
    -->
    </Script>
    </HEAD><body  onload='setFocus()'><FONT SIZE="" COLOR="#333399"><CENTER><U><B>增 加 顾 问</B></U></CENTER></FONT>
    <BR><BR><BR>
    <FORM METHOD=POST ACTION="add.jsp">
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;城市编号:
    <INPUT TYPE="text" NAME="citycode" length=15><BR><BR>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;中文描述:
    <INPUT TYPE="text" NAME="chinesedesc"><BR><BR>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;英文描述:
    <INPUT TYPE="text" NAME="englishdesc"><BR><BR>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;城市简称:
    <INPUT TYPE="text" NAME="ab"><BR><BR>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;所属省份:
    <INPUT TYPE="text" NAME="provincecode"><BR><BR>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;所属星级:
    <INPUT TYPE="text" NAME="cityclass"><BR><BR>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;是否广东:
    <INPUT TYPE="text" NAME="isgd"><BR><BR>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    &nbsp;&nbsp;&nbsp;&nbsp;
    <INPUT TYPE="submit" name=ok value=确定>
    &nbsp;&nbsp;<INPUT TYPE="submit" name=ok value=取消>
    </FORM>
    <%
    String citycode,chinesedesc,englishdesc,ab,provincecode,cityclass,isgd;
    citycode=request.getParameter("citycode");
    chinesedesc=request.getParameter("chinesedesc");
    englishdesc=request.getParameter("englishdesc");
    ab=request.getParameter("ab");
    provincecode=request.getParameter("provincecode");
    cityclass=request.getParameter("cityclass");
    isgd=request.getParameter("isgd");
    增加代码连接数据库.............
    %>
    </body>
    </html>
    请问数据库的连接还有效吗,还是说要重新连接一次数据库?可以在这个地方执行以下语句吗:
    <%
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    String url=new String("jdbc:odbc:Instore Army"); 
    String user="sa"; 
    String password=""; 
    Connection conn= DriverManager.getConnection(url,user,password);   
    Statement stmt=conn.createStatement(); 
    String sql="insert into city(citycode) values(citycode)";   
    int rs=stmt.executeUpdate(sql);  
    %>
      

  4.   

    insert into 插入的citycode是一个变量,出现如此错误:
    javax.servlet.ServletException: [Microsoft][ODBC SQL Server Driver][SQL Server]The name 'citycode' is not permitted in this context. Only constants, expressions, or variables allowed here. Column names are not permitted.
    at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:457)
    at org.apache.jsp.add$jsp._jspService(add$jsp.java:107)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:202)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:382)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:474)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    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:201)
    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.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:2344)
    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.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
    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:1011)
    at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1106)
    at java.lang.Thread.run(Unknown Source)
      

  5.   

    插入语句应该怎么写呀?假如a是变量:
    String sql="insert into city(citycode) values('"+a+"')";
    int i=executeUpdate(sql);
    insert into 语句应该怎么写了,请指教,我用了好多种写法都不行!唉!!
      

  6.   

    字段citycode为字符型:
    String sql="insert into city(citycode) values('"+a+"')";字段citycode为数字型:
    String sql="insert into city(citycode) values("+a+")";