我的程序支持两种数据库都能正常添加、查询。
但执行ResultSet的deleteRow()时,Oracle正常。MySql抛出异常:结果集没有可更新的(引用表没有主键)。这个结果集必须来自一个语句中,创建一个结果集类型的记录集。CONCUR_UPDATABLE,查询必须只选择一个表,可以不使用函数和必须选择所有表的主键。什么意思啊这是?我的程序中调用的是同一个函数,结果MySql居然不行。

解决方案 »

  1.   


    是的,是用executeUpdate() 创建的。
      

  2.   

    mysql有不止一种引擎,有种连事务都没有,肯定不支持结果集映射直接修改数据。
      

  3.   


    好吧,如果这样的话,至少我代码没问题...真是的,MySql在别人那里拷的,安装居然还要.NET FrameWork
      

  4.   

    先删掉MySql,从官网再下一个试试吧。
      

  5.   

    问题已经解决: 原因是,在MySQL中,如果要使用resultSet中的deleteRow()方法删除表中数据。则这个表必须有主键,并且用Statment或PreparedStatment查询时,必须将主键列查询出来。才能使用deleteRow操作。而Oracle中不需要。