【发布时间】:2013-10-30 08:30:19
【问题描述】:
我真的不知道防止两个用户从 sql server 访问相同数据的最佳方法是什么。我使用 c# 开发了一个 win 应用程序,用户单击记录以对其进行修改。当用户单击记录时,会显示一个新表单,其中包含用户可以修改数据的数据。假设我的应用程序在两台电脑上运行,两个用户打开相同的记录,然后谁最后更新相同的数据,这些数据将保存在数据库中。
所以我做了什么...每当任何用户打开数据记录时,我都会创建一个表并将记录 ID 存储在该表中。如果记录 ID 存储在表中,那么下次另一个用户无法访问该数据,而是获取消息谁正在处理这些记录。这样我的目的就解决了,但我不知道这是正确的还是最好的方法。
所以大家告诉我如何用最好的方法处理这种情况。谢谢
【问题讨论】:
-
你使用的是哪个 ORM?
-
如果您的第一个用户在没有任何确认或回滚的情况下关闭您的应用程序,此支持表中会发生什么情况? (即停电或其他)
-
试试这个关于锁定的链接:stackoverflow.com/questions/129329/…
-
我通常会推荐乐观并发——锁往往会导致需要允许覆盖/强制解锁,以及史蒂夫暗示的清理。两个用户可能访问同一记录的频率如何?
-
我没有使用 ORM,而是使用 ADO.DotNet 数据阅读器从 sql server 2005 db 中获取数据。
标签: c# sql-server