
2008-5-27 07:51
juanpeng
数据库数据一致性问题,请求一个好的解决方案
服务器有数据库TEMT,其中有表A。有多个客户端访问表A,目前表A中有三条记录(主键ID:1,2,3),这时两个客户端同时读取了表A,并且同时为改表创建了新行主键号都是4,第一个客户更新完后,第二个客户更新很定挂。请教怎么解决这样的问题,小弟没有多客户端开发经验请高手指点。
2008-5-27 07:51
juan002
并且同时为改表创建了新行?这个可能貌似不存在
2008-5-27 08:22
mo_yuan_ming
数据库ID如果是手动生成,那么采取在入库的时候生成,生成前对数据表加锁插入完成后解锁就可以了!
2008-6-11 18:37
dahuzizyd
并发冲突问题,看你存取数据用什么办法了,如果用DataSet,写数据库的时候内置了有并发控制,这时会抛出主键冲突的异常。捕捉这个异常,然后重新加载,显示数据,赋予新ID,然后再次Insert。
如果使用sqlCommand之类通过Sql进行Insert,那么在执行前先判断下数据库中的记录是否已经存在,如果已经存在,赋予一个新的ID,然后再Insert。
当然,如果你的ID是自增的话,就不会存在问题。
页:
[1]

Powered by ITPUB论坛