很可能是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);
}
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);
}
不然的話找不到你的錯處的~
第二次就出错,但两次的sql语句是完全一样的,而且debug时候发现是在connection.setAutoCommit(false)时候出错,还没到执行sql语句呢.
connection.setAutoCommit(false);
你出错的原因是由于Access数据库是不支持事务处理的,也就是说,你的connection.setAutoCommit(false)是一定会报错的,你只要输出一次connection.getAutoCommit()的值,就知道数据库是否支持事务了!对于一个不支持事务的数据库去设置事务处理当然要报错啦!