C# .net sqlserver 并发处理

在多个并发用户更新同一账户信息时,第一个可以成功更新。随后的更新在提交之前,显示错误信息“用户数据已经改变,是否需要刷新用户数据?应该怎么实现,最好能给出代码,或给我个例... 在多个并发用户更新同一账户信息时,第一个可以成功更新。随后的更新在提交之前,显示错误信息“用户数据已经改变,是否需要刷新用户数据?
应该怎么实现,最好能给出代码,或给我个例子
展开
 我来答
iSuper01
2009-09-04 · TA获得超过154个赞
知道答主
回答量:202
采纳率:0%
帮助的人:64.4万
展开全部
这是 SQL Sever 数据库的内部逻辑处理规定,禁止多个用户同时修改同一个记录,只能进行排队等候,表面上是同步的,实际上是互斥的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
PCP北小
2009-09-04 · TA获得超过129个赞
知道答主
回答量:150
采纳率:0%
帮助的人:103万
展开全部
受教了!~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
adlop001
2009-09-04
知道答主
回答量:40
采纳率:0%
帮助的人:11.9万
展开全部
学习了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
石哥在拌饭
推荐于2016-09-22 · TA获得超过530个赞
知道小有建树答主
回答量:573
采纳率:100%
帮助的人:566万
展开全部
当多个用户同时更新同一数据的时候,由于更新可能导致数据的不一致性,使得程序的业务数据发生错误,这种情况可以称之为并发。在ADO .NET中,并发的处理可以通过三种方式来控制:保守式并发控制、开发式并发控制以及最后更新生效方式。
— 保守式并发控制:数据从数据库取出之后,一直处于锁定的状态,其他用户不能获取该数据,直至数据更新完毕之后,用户才能取出该数据进行操作。此种控制方式对于性能和资源占用得很多,由于只能同时有一个用户对数据享用操作权,所以可能会在正常业务中,影响其他用户的处理进程。但此控制方式可以完全保证数据的完整性。该方式可以通过.NET提供的事务机制来实现,前提是数据源需要支持事务。

— 开发式并发控制:数据在更新之前都是可以被其他用户使用的,只有在更新的时候,才锁定记录。但更新的时候,会比对与查询之初的数据是否吻合,如果不一致,则不运行修改。此种控制方式也可以完全保证数据的完整性,其优点是不会占用其他用户访问该数据的权限,其缺点是由于其他用户可能已经更新了这些数据,导致本次更新可能不会完成。对于此种控制方式,多以开发人员通过程序本身的业务逻辑来实现。

— 最后更新生效方式:此种方式同上,只有在数据更新的时候,其他用户才不可使用,但更新的时候不检查是否与开始数据一致,而直接对其更新。此种方式对于更新的并发性有很大的支持,但缺点是可能引发前后数据的不一致。此种方式适合可以满足此需求的业务场景使用。

注意:数据库的并发处理并不是一成不变的,不同的业务场景对数据库的并发要求是不一样的,可以根据具体情况具体分析

参考资料: http://hi.baidu.com/gamevip

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式