是你在insert之前已经把ResultSet给关掉了一般是每次用完后才关闭!你把全部连接数据库的代码贴出来

解决方案 »

  1.   

    这是连接的全部代码:
    String result="";
            int count=0;
            try{
              Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
              Connection con=DriverManager.getConnection("jdbc:odbc:classmanager");
              Statement st=con.createStatement();
              String sql="select TCourse.C_ID  from  TCourse,TCTime"
                  +" where TCourse.T_ID=TCTime.T_ID and TCourse.T_ID='"+sysT_ID+"'"
                  +"and TCTime.TC_DATE='"+sysTC_DATE+"'"
                  +"and TCTime.TC_TIME='"+sysTC_TIME+"'";          System.out.println(sql);
              ResultSet rs=st.executeQuery(sql);
              while(rs.next()){
                  result=rs.getObject("C_ID").toString();
                  System.out.println(result);
                  count=count+1;
              }
              if(count==0){
                String insertSql="INSERT INTO TCTime(T_ID,C_ID,TC_DATE,TC_TIME) VALUES( '"+sysT_ID+"','"+sysC_ID+"','"+sysTC_DATE+"','"+sysTC_TIME+"')";         
                st.executeUpdate(insertSql);
              }
             else if(count>=1){
                System.out.println("同一老师在同一时间不能选两门课!");
             }
              rs.close();
              //st.close();
              con.close();
          }
          catch(Exception e){
             System.out.println(e.getMessage());
          }
          //System.out.println("sql");
          System.out.println(count);
    现在我用PreparedStatement实现了动态的插入,但是我不知道我上面的做法错在什末地方?
    请您看过给出指点!
      

  2.   

    一个Statement对象仅能有一个ResultSet对象,所以你在查询完了以后,要插入的时候该从新得到一个Statement对象.