public void stuDel(String num)
   {
   
   Database DB=new Database();
   
   this.sNum=num;
   
   sql="delete from Student1 where Snum >"sNum"";
   try
   {
   
   DB.OpenCon();
   DB.excuteUpdate(sql);
   JOptionPane.showMessageDialog(null, "成功删除");
   }
   
   catch(Exception e)
   {
   System.out.println(e);
   JOptionPane.showMessageDialog(null, "删除失败", "错误",
   JOptionPane.ERROR_MESSAGE);
   }
   
   finally
   {
  DB.closeConn();
  DB.closeStmt();
   }
}
我用上面语句对access数据库数据进行删除,但是执行过后 到Access中看 此数据还是在????为什么啊??说标准表达式中数据型不匹配????
急!!

解决方案 »

  1.   

    sql="delete from Student1 where Snum >'sNum'";
      

  2.   

    sql="delete from Student1 where Snum >"sNum"";
    改成.
    sql="delete from Student1 where Snum >'"+ sNum+"'";=================================================
    finally { DB.closeConn(); DB.closeStmt(); }关闭顺序有误.先 DB.closeStmt(); 后DB.closeConn();
      

  3.   

    谈谈我的浅见:
    你的参数是stuDel(String num) 中的num参数是String类型,而 > 或 < 运算符应该只能运用于int 或 double 或 float 类型。
    不知道说的对不对,别见笑啊!
      

  4.   

    sql="delete from Student1 where Snum >"sNum""; 
    好像应该改为:
    sql="delete from Student1 where Snum > sNum"; 
    去掉一对冒号! 
      

  5.   

    忘了,sNum是个变量了
    sql="delete from Student1 where Snum > " + sNum + ";"; 
      

  6.   

    sNum是变量  
    sql="delete from Student1 where Snum > " + sNum;
      

  7.   

    sql="delete from Student1 where Snum >'"+sNum+"'"; 
    这样应该就可以了,太大意了吧
      

  8.   

    DB.OpenCon();
      DB.chinese wholesalers
    ugg(sql);
      JOptionPane.showMessageDialog(