我的情况是这样,如何在两个成员尝试访问记录时锁定记录?
我的环境是.Net2.0,VS 2008,Web应用程序
我需要锁定记录时,两位成员都在同一时间试图访问。
我们可以做到这一点有两种方式,
通过前端(把会话ID,并记录在字典中唯一编号,并保持它作为一个静态或应用程序变量),我们将发布在响应是否离开该页面,客户端没有连接,点击后按钮并且会话结束后。 (通过DB本身的记录锁定 - 需要学习 - 我的团队成员正在寻找)。
是否有其他方法可以做,我是否需要在每个步骤中查看其他方法?
我是否缺少任何条件?
如果您已经在使用数据库,您可以使用数据库的事务来实现您想要的功能吗?在事务中执行读取/更新,如果发生冲突,数据库将回滚失败的事务,然后处理失败? – sarnold 2010-07-05 05:34:22
第一个问题:**为什么**你需要锁定?通常,今天的数据库使用乐观并发处理 - 你基本上假设一切都很顺利(99%的时间),并且不用担心类似的锁和类似的东西,而你只对1%的情况做出反应发生冲突 – 2010-07-05 05:58:10
@sarnold:对于ASP.NET而言不是一个好主意,您会在用户在浏览器中输入/更改数据期间保持连接/事务处于打开状态吗?如果他关闭浏览器会发生什么情况?你需要有一些额外的代码来清理无效的锁。 – Gertjan 2010-07-05 06:14:49