很可能是sql语句的问题,你把所有的前缀都加上,就像这样
sql = "UPDATE product SET product.prod_name='" + 
  name+ "', .prod_price='" + price + "' , product.prod_qty='" 
  +quantity + "' WHERE product.prod_name='" + targetName +"';";
try{
Statement stat = con.createStatement();
if(stat.execute(sql)) JOptionPane.showMessageDialog(null, "Can not apply");
stat.close();
}
catch(SQLException e3)
{
  e3.printStackTrace();
  JOptionPane.showMessageDialog(null, e3);
}

解决方案 »

  1.   

    朋友給我看一看你的code 吧~
    不然的話找不到你的錯處的~
      

  2.   

    我是同样的操作,同一个功能做两次,第一次可以,
    第二次就出错,但两次的sql语句是完全一样的,而且debug时候发现是在connection.setAutoCommit(false)时候出错,还没到执行sql语句呢.
      

  3.   

    是不是应该:if(connection.getAutoCommit())
       connection.setAutoCommit(false);
      

  4.   

    我来告诉你吧!
    你出错的原因是由于Access数据库是不支持事务处理的,也就是说,你的connection.setAutoCommit(false)是一定会报错的,你只要输出一次connection.getAutoCommit()的值,就知道数据库是否支持事务了!对于一个不支持事务的数据库去设置事务处理当然要报错啦!