c# - 当其他用户进行更改时刷新 Windows 程序?

标签 c# mysql winforms .net-3.5 refresh

场景:

  • 4 个用户启动连接到基于数据库的待办事项列表的同一客户端程序 (Winforms) 的单独实例。
  • 第一个用户选择了第三个待办事项列表项。

如何更新/刷新其他 3 个用户的屏幕以反射(reflect)第 3 项不再可用?

我的想法是一个包含最后更新日期时间戳的表格。然后计时器会每隔几秒检查一次,看看是否有任何变化。

更新 1:

感谢所有人 - 肯定有很多有效答案。

我选择了 Icemanind 场景的更简单版本推荐的。

最佳答案

正如卢卡斯所建议的那样,您可以实现“推送”风格的系统,无论何时修改实体,都会将其“推送”给其他连接的用户。这可能有点复杂。使用遗留系统,我们处理这个问题的方式是通过“更改编号”列,但实际上它可以是每次修改记录时更新的任何内容。

当用户尝试修改实体时,我们查询数据库以行锁定该实体,其中“更改编号”反射(reflect)了用户当前拥有的“更改编号”。

如果锁定成功,用户可以更新/删除实体。完成后,实体上的“保存/提交”和“更改编号”会增加。

如果他们未能获得行锁并且“更改编号”相同,我们会显示一条消息,表明他们请求的实体正在被其他用户使用。如果“更改编号”不同,则消息表明他们必须刷新 View 。

关于c# - 当其他用户进行更改时刷新 Windows 程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3311741/

相关文章:

C#:如果列表框字符串等于

c# - Visual Studio 2015 : Could not resolve mscorlib for target framework

c# - 使用 ClosedXML 附加到 excel 文件

php - 使用 strotime 从 mysql db 格式化 CURRENT_TIMESTAMP 然后输出 html

c# - 在 TableView 中绑定(bind) TextCell

mysql - 为什么 "Sqoop import --query ..."插入多行而应该只插入一行?

mysql - 具有两个外键约束的表

c# - InvokeRequired 和 ToolStripStatusLabel

c# - 调试 winform 崩溃 - C# [ADPlus + Windbg]

vb.net - 使用VB.net通过拖放将多个文件上传到FTP服务器时出现问题