进入循环后,你的rs被重新赋值了。而且你应该用executeUpdate,而不是executeQuery。

解决方案 »

  1.   

    提示说WIN2K_DEV这个子段不存在
      

  2.   

    (1)我的“WIN2K_DEV”的这个字段是在程序中产生的,是字段的内容;不知道为什么这样提示;
    (2)我这段程序的目的是在按顺序访问记录行的时候,同时在该行记录的最后一个字段中添加内容,如果用rs.next()方法的话,那段SQL语句应该怎么写?多谢了!谢谢!
      

  3.   

    把rs=st.executeQuery(strSQL);
    换成st.executeUpdate(strSQL);试试
      

  4.   

    同时在该行记录的最后一个字段中添加内容?那就不应该用insert into啊,这样会新增记录的。
    应该用update啊
    另外,rs的问题只要用rs2即可解决
      

  5.   

    superscreen(没钱买内裤) :还是出现相同错误:( fander(fander):不用insert into吗?我是想利用该行记录的前两个字段的内容拼写,填到最后一个字段中去;
    “另外,rs的问题只要用rs2即可解决”这个问题能否讲详细一点呢?谢谢了
      

  6.   

    当然不能用insert into,因为insert into会新增一条记录的,而不是修改当前记录
    你这个要求其实用SQL语句就能实现
    update tablename set field3 = field1+'_'+field2rs的问题是因为第二次使用rs覆盖了前面的rs,那么第二个可以另外用一个新的变量rs2
    或者直接用就st.executeUpdate(strSQL);就不用返回rs了
      

  7.   

    干脆给你个完整的代码:
    try{
        Connection cn=DriverManager.getConnection("jdbc:mysql://"+fHost+":3306/"+fDb+"?useUnicode=true&characterEncoding=gb2312",fUser,fPass);
        Statement st = cn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
        String strSQL="UPDATE "+fTable+" SET element_cim_inst_name = field3+'_'+field1";
        st.execute(strSQL);
      }catch(Exception e){
          e.printStackTrace();
        }其中的field3, field1要替换为你的字段
      

  8.   

    干脆给你个完整的代码:
    try{
        Connection cn=DriverManager.getConnection("jdbc:mysql://"+fHost+":3306/"+fDb+"?useUnicode=true&characterEncoding=gb2312",fUser,fPass);
        Statement st = cn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
        String strSQL="UPDATE "+fTable+" SET element_cim_inst_name = field3+'_'+field1";
        st.execute(strSQL);
      }catch(Exception e){
          e.printStackTrace();
        }其中的field3, field1要替换为你的字段