【问题标题】:How to prevent users from editing the same record in WPF如何防止用户在 WPF 中编辑同一条记录
【发布时间】:2017-07-09 14:16:52
【问题描述】:

我正在使用 MS SQL Server 为多个用户在同一本地网络上工作开发 WPF 应用程序。我想防止用户同时编辑同一条记录。

示例:假设 User1 修改记录号 5,如果 User2 尝试查看或修改记录 5,应用程序将向用户 2 返回警告消息。

有什么想法吗?

提前致谢

【问题讨论】:

  • 将其存储在数据库中,然后查找。
  • 你怎么知道他在“修改”唱片? MS SQL 自己处理并发控制。不太清楚你为什么要这样做
  • 请说出你的想法
  • 您应该使用过渡来管理更新过程。因为有时您有多个操作正在运行。这是您的答案的链接。dev.mysql.com/doc/refman/5.7/en/commit.html
  • 一种易于实现的常见模式是“乐观并发”。如果您确定对象上有 RowVersion 或 TimeStamp 属性,那么您可以检查 UPDATE 查询是否与 SELECT 完成时不同。如果是这样,您可以在此时警告用户并重新加载新数据或允许他们覆盖上次保存的数据。

标签: c# sql wpf


【解决方案1】:

您可以创建另一个名为 ModifyCheck 的表,其中仅包含 record_id 和 user_id。 当用户修改记录时,它应该在 ModifyCheck 中插入一个条目。 当用户完成修改该记录时,您可以删除该条目或更新它以反映已完成。也可以存储时间戳。

因此,当其他用户尝试查看/修改时,您需要使用 ModifyCheck 表检查该特定记录是否正在被修改。

【讨论】:

  • 用户修改时电脑关机会怎样?在这种情况下,没有人可以编辑此重新编码。
  • 例如:User1 现在正在编辑 Record1,存储在 ModifyCheck 中。如果电脑死了,没关系。只要您仍然允许 User1 修改它并完成该过程。因此,您需要进行检查以允许同一用户访问修改屏幕,拒绝其他用户。
  • 这是工作,但如果你能帮助stackoverflow.com/questions/45131582/…,我将面临这个问题
猜你喜欢
  • 1970-01-01
  • 2015-11-26
  • 1970-01-01
  • 2021-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-05
  • 1970-01-01
相关资源
最近更新 更多