ITPUB??ì3
ITPUB论坛 » 开发工具和语言 » .NET软件架构与模式 » 数据库数据一致性问题,请求一个好的解决方案


标题: 数据库数据一致性问题,请求一个好的解决方案
离线 juanpeng
中级会员



精华贴数 0
个人空间 0
技术积分 3660 (381)
社区积分 0 (1438359)
注册日期 2007-6-21
论坛徽章:27
开发板块每日发贴之星开发板块每日发贴之星开发板块每日发贴之星生肖徽章2007版:鼠生肖徽章2007版:鼠生肖徽章2007版:鼠
生肖徽章2007版:鼠生肖徽章2007版:鼠生肖徽章2007版:鼠生肖徽章2007版:鼠生肖徽章2007版:鼠生肖徽章2007版:鼠

发表于 2008-5-27 07:51 
数据库数据一致性问题,请求一个好的解决方案

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


只看该作者    顶部
离线 juan002
中级会员



精华贴数 0
个人空间 0
技术积分 3236 (442)
社区积分 0 (1438360)
注册日期 2007-6-21
论坛徽章:18
生肖徽章2007版:鼠生肖徽章2007版:鼠生肖徽章2007版:鼠生肖徽章2007版:鼠生肖徽章2007版:鼠生肖徽章2007版:鼠
生肖徽章2007版:鼠生肖徽章2007版:鼠生肖徽章2007版:鼠生肖徽章2007版:鼠生肖徽章2007版:鼠生肖徽章2007版:鼠

发表于 2008-5-27 07:51 
并且同时为改表创建了新行?这个可能貌似不存在


只看该作者    顶部
离线 mo_yuan_ming
水墨清风


精华贴数 6
个人空间 0
技术积分 5217 (248)
社区积分 6112 (235)
注册日期 2004-8-29
论坛徽章:22
现任管理团队成员ITPUB元老ITPUB北京香山2007年会纪念徽章会员2007贡献徽章紫蜘蛛2008北京奥运纪念徽章:举重
生肖徽章2007版:蛇生肖徽章2007版:蛇生肖徽章2007版:蛇生肖徽章2007版:蛇生肖徽章2007版:兔生肖徽章2007版:鼠

发表于 2008-5-27 08:22 
数据库ID如果是手动生成,那么采取在入库的时候生成,生成前对数据表加锁插入完成后解锁就可以了!


只看该作者    顶部
离线 dahuzizyd
干死日本人


精华贴数 0
个人空间 0
技术积分 128 (13560)
社区积分 265 (1999)
注册日期 2008-6-6
论坛徽章:2
2008北京奥运纪念徽章:手球2008北京奥运纪念徽章:摔跤    
      

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

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

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


只看该作者    顶部
 
    

相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问