多个VB.NET客户端之间的实时SQL数据库更新

时间:2010-05-31 11:22:12

标签: sql vb.net real-time

我正在使用SQL数据库而我正在编写VB.NET客户端应用程序。此应用程序同时在多台计算机上使用。如果其中一个客户端对数据库进行了更新,我希望让其他客户端知道更新。

4 个答案:

答案 0 :(得分:1)

如果您使用的是MS SQL Server,则可以使用Service Broker notifications在数据更新时将通知推送到客户端。这不是我个人使用的经验。

答案 1 :(得分:0)

  1. 确保您的表具有DateUpdated列
  2. 读取表格时,将dateUpdated值保存到内存变量
  3. 更新表时包括DateUpdated< =
  4. 检查步骤3中更新的行数。
  5. 如果第4步返回0,则意味着其他人在当前用户查看数据时更新了该故事。
  6. 请注意,这仅适用于您在保存数据时检测更新的情况。如果您希望在当前显示的记录已更新时通知客户端应用程序,那么就像其他人提到的那样,您将不得不使用某种通知服务。

答案 2 :(得分:0)

环顾四周后,我发现了一些关于Service Broker的好消息。我还阅读了以下内容;

查询通知是针对不经常更改的数据而设计的。它最适用于服务器端应用程序(例如ASP.NET或远程处理)而不是客户端应用程序(例如作为Windows窗体应用程序)。请记住,每个通知请求都在SQL Server中注册。如果您有大量客户端应用程序请求通知,这可能会在您的服务器上造成资源问题。微软的建议是客户端应用程序,您将查询通知的使用限制为不超过十个并发用户。“

这是我关注的问题,因为我有大约10个表,这些表经常更新(每5秒钟一次)。

也许有人有使用Service Broker通知来更频繁更改数据的经验。

非常感谢!

马塞尔

答案 3 :(得分:0)

我有同样的问题。 我的解决方案是创建一个审计表! 审计表包含所有表名和另一个包含日期时间的列。

当用户更改数据时,还会更新审计表中的日期时间。

所有用户每4秒检查一次审计表。如果其中一个表已更新,则用户重新加载整个表的更新方式。

抱歉我的英文。