public boolean updating(InfoBean obj){
    String sql="update userinfo set password=? where loginname=?"; //请问我这样写有错没啊?
    PreparedStatement pr=null;
    boolean check=false;    try{
      pr=con.prepareStatement(sql);
      pr.setString(1,obj.getPassword());//这里呢?
      pr.setString(2,obj.getLoginname());
      if(pr.executeUpdate()>0){
       check=true;
      }   }catch(Exception e){
   e.printStackTrace();
   }finally{
   try{
     if(pr!=null){
     pr.close();
     }   }catch(Exception e){
   e.printStackTrace();
   }
   return check;
   }
  }  我执行的时候报了一个异常 如下~~~ 这是什么意思啊? 
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]必须声明变量 '@P1and'。
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)

解决方案 »

  1.   

    比较奇怪...@P1and不知道哪里来的
      

  2.   

    你的obj.getPassword()或者getLoginname()返回的不是字符串吧~?可能是个对象
      

  3.   

    执行数据库的操作的时候参数是按照sql语句而不是按照数据库表里字段顺序排列的,不过没问题呀!
    还有就是con是不是没有设置呀~~
      

  4.   

    lZ 看看Connection con先。其他貌似都没有什么错误!
      

  5.   

    应该是PreparedStatement 的SQL第一个问号有问题,你用字符串拼接试一下