INSERT,要使用stmt.executeUpdate(query);才行,因为INSERT不能返回结果集。

解决方案 »

  1.   

    我重新定义了一个ResultSet r1,用来替换代码中的第二个rs = stmt.executeQuery(query);
    可还是出现一样的错误提示!!
      

  2.   

    to xxp
    我改了以后出现了另一个错误提示:
    /disk/lend1.jsp:57: = 的不兼容类型。无法将 int 转换为 java.sql.ResultSet。
    rs = stmt.executeUpdate(query);
    这又是为什么呀?
       
      

  3.   

    因为 ,Insert 没有返回结果,所以,用不着取他的返回值。直接stmt.execute(query);就可以了~看来,你不喜欢用try{}catch(){}。嘿嘿~
      

  4.   

    stmt.executeUpdate(query);这条语句返回的是Int类型的数值,代表是否执行成功。当然不能用ResultSet类型来接收啦~嘿嘿~
      

  5.   

    to asbbfu(asbbfu)
    直接用stmt.execute(query);以后又出现了如下提示:
    java.sql.SQLException: ResultSet is closed 
      

  6.   

    to asbbfu
    那究竟应该怎么写呢?
      

  7.   

    try{

    stmt.execute( "insert into BWDB_IdType (typeId,title) values (8,'死亡证明')");
    }catch(Exception e){
    // Do nothing;
    out.print( "There are some errors...<br>");
    }
    我好人做到家,这样就不会老报错了~嘿嘿!~
      

  8.   

    to asbbfu(asbbfu)
    告诉你一个不太好意思的消息,执行了代码以后还是出现如下提示:
    java.sql.SQLException: ResultSet is closed
    天哪,这到底是怎么一回事呀!!!
      

  9.   

    那么就不是那段代码的错误了,如果那段代码有错误,系统是不应该返回出错信息的,因为他是被保护执行的,如果有错误信息,是会被程序捕获得!就是Catch所执行的语句!~你仔细查查你别的地方吧~如果,你连Insert语句的返回类型都不清楚地话,那么我肯定,你其他的地方还有错误!查查吧~我当初开始编程的时候,也那样!~
      

  10.   

    你应该先new一个ResultSet;即ResultSet rs;改为ResultSet rs=new ResultSet();
      

  11.   

    可能是两个语句的rs相同造成的,再定义一个ResultSet变量试试。
      

  12.   

    我改成了:
    rs.close();
    ResultSet rs1;
    stmt.execute(query1);
    可还是出现一样的错误提示。
      

  13.   


    <%@ page contentType="text/html; charset=GB2312" %>
    <%@ page import="java.sql.*" %>
    <%@ page import="java.util.Date" %>
    <%@ page language="java" %>
    <HTML>
    <HEAD>
    <TITLE>光碟出借登记</TITLE>
    </HEAD>
    <BODY bgcolor="#CCCCCC"><%
    try
    {
     Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
     Connection con = DriverManager.getConnection("jdbc:odbc:disk");
     Statement stmt = con.createStatement(); //建立Statement对象
     ResultSet rs;
     String query = "SELECT * FROM disk where disk_id = " + request.getParameter("disk_id");
     rs = stmt.executeQuery(query);
     
    %>
    <CENTER>
     <br>
     <h2><b>以下是本次借出操作的结果</b></h2>
     <br>
     <TABLE  border=1 bordercolor=RoyalBlue bgcolor=LightYellow>
      <TR bgcolor=DeepSkyBlue>
       <TD><B>光碟编号</B></TD><TD><B>光碟名字</B></TD><TD><B>借者信息</B></TD><TD align=center><B>出借日期</B></TD>
      </TR>
    <%
     String ls_disk_id;
     String query1;
     while(rs.next())  //利用while循环配合next方法将数据表中的记录列出
    {
     ls_disk_id = rs.getString("disk_id");
    %>
     <TR>
      <TD><B><%= ls_disk_id %></B></TD>
      <TD><B><%= rs.getString("disk_name") %></B></TD>
      <TD><B><%= request.getParameter("lend_man") %></B></TD>
    <%
     Date today = new Date();
     int ll_t1 = (today.getYear()+1900);
     int ll_t2 = (today.getMonth()+1);
     int ll_t3 = (today.getDate());
     String ls_date = (today.getYear()+1900) + "/" + (today.getMonth()+1) + "/" + (today.getDate()) ;
    %>
      <TD><b><%= ll_t1 %>年<%= ll_t2 %>月<%= ll_t3 %>日</b></TD>
     </TR>
    <%
    query1 = "insert into lend(lend_disk_id,lend_man,lend_date,lend_ok,lend_re) values (";
    query1 = query1 + "'" + ls_disk_id + "','" + request.getParameter("lend_man") + "',#" + ls_date + "#," + "'f'" + "," + "'aaa'" +")";
    //out.print(query);
    stmt.execute(query1);//  to asbbfu(asbbfu) 就是错在这个地方!!}
    %>
     </TABLE>
    <p>
    <p>
    <a href="host.jsp">返回主界面</a>
    <a href="lend.jsp">继续出借操作</a>
    <a href="javascript:window.close()">关闭窗口</a>
    </CENTER>
    <P></P>
    <%
    rs.close();
    stmt.close();
    con.close();
    }
    catch(Exception e)
    {
     out.println(e);
    }%>
      

  14.   

    to asbbfu(asbbfu)
    不好意思,没看清楚。
    to kcb111(kcb)
    希望能帮我尽快了结它,我已经搞了快一天了:(
      

  15.   

    再定义一个
    Statement1 stmt = con.createStatement(); //建立Statement对象
    然后改为
    stmt1.executeUpdate(query1);最后记得
    stm1.close();你还可以把query1打印出来看看,可不可以正常运行.
      

  16.   

    你的查询语句有问题:String query = "SELECT * FROM disk where disk_id = '" + request.getParameter("disk_id")+"'";
      

  17.   

    to kcb111(kcb):
    重新定义了一个stmt1以后果然就搞定了。
    老大真乃是神人也,谢谢谢谢。
    to asbbfu(asbbfu):
    也谢谢这位老兄的金玉良言,不胜感激。
    分数送上,请笑纳:)
      

  18.   

    不好意思,我是一个freshman。