打印

[.Net] 数据库数据一致性问题,请求一个好的解决方案

数据库数据一致性问题,请求一个好的解决方案

服务数据TEMT,其中有表A。有多个客户端访问表A,目前表A中有三条记录(主键ID:1,2,3),这时两个客户端同时读取了表A,并且同时为改表创建了新行主键号都是4,第一个客户更新完后,第二个客户更新很定挂。请教怎么解决这样的问题,小弟没有多客户端开发经验请高手指点。

TOP

并且同时为改表创建了新行?这个可能貌似不存在

TOP

数据库ID如果是手动生成,那么采取在入库的时候生成,生成前对数据表加锁插入完成后解锁就可以了!
[COLOR=blue] 更换中,请稍后…… :rose:[/COLOR]

TOP

并发冲突问题,看你存取数据用什么办法了,如果用DataSet,写数据库的时候内置了有并发控制,这时会抛出主键冲突的异常。捕捉这个异常,然后重新加载,显示数据,赋予新ID,然后再次Insert。

如果使用sqlCommand之类通过Sql进行Insert,那么在执行前先判断下数据库中的记录是否已经存在,如果已经存在,赋予一个新的ID,然后再Insert。

当然,如果你的ID是自增的话,就不会存在问题。

TOP


感谢一直以来您对我们的支持!
当前时区 GMT+8, 现在时间是 2008-12-3 08:56 京ICP证060528 号

Designed By 17DST