做一个winform程序,有2个表:表person,表personrole
表person字段为:c_id(主键),c_name
表personrole字段为:c_id(主键),c_roleid,c_personid,c_name  注:c_name在这个表里存储的值没实际意义,只是为了操作方便才这么设计
我在做修改更新操作时报错:违反并发性:updatecommand影响了预期1条记录中的0条
具体代码如下(把问题简化了):
//把数据取出来,发到dataset里
sqldataAdapter sd=new sqldataAdapter();
sd.selectcommand=new sqlcommand("select personrole.c_id,personrole.c_roleid,person.c_name from personrole inner join person on personrole.c_personid=person.c_id",sc);//sc是sqlconnection
sd.fill(ds,"personrole");
……对数据做了修改更新操作……//实际上是修改了某些行的c_roleid字段值
//把修改更新操作提交到数据库
sd=new sqldataAdapter("select c_id,c_roleid,c_name from personrole where c_id='" +ds.tables["personrole"].rows[0].itemarray[0]+ "'",sc);//把问题简化了
sqlcommandbuilder sqlcb=new sqlcommandbuilder(sd);
sd.update(ds,"personrole");
update时报错:违反并发性:updatecommand影响了预期1条记录中的0条
如果是手写updatecommand则不会报错,由于我一开始取数据的sql是联合查询,如果只是对单表查询取数据也不会报错,不过我想用联合查询一次把数据取出来