偶然遇到了一个问题,在vb。net 中有dataadapter 更新数据的时候,提示了”并发冲突,更新记录为0力“类似错误,百思不得其解,在论坛里看到一位仁兄写道,一定是数据存在修改差异了。当时就想起了上学时老师讲的问题。
当a 对象和b对象都读取了数据c,然后b更改了数据并更新了,这时a有更改了更新了,因为a更改的前的数据已经合原先的数据不一致了(b修改的),于是就会有并发冲突的错误。
于是我猛然间想起了,我的程序存在两个不同的更新方式,一个用dataadapter 更新的数据表,一个是用存储过程更新的其中的一个字段。我恍然大悟,索性将存储过程更新的删除了,都改成dataadapter更新了,错误不见了。
其实一个进程存在这种错误,当网络中的不同客户端,同时访问也会造成这种问题,解决的办法要注意了,通常是提示类似“有其他用户在编辑,请更新数据后再编辑”。