3

我需要帮助。我目前正在使用 Winforms 和 C# 构建数据管理应用程序。此应用程序已安装在 10 台计算机上,并连接到服务器上的一个数据库。网络只在办公室。

这些应用程序使用数据网格视图来显示员工列表。

现在的主要问题是,如果 PC-A 上的用户输入了新记录或更新了员工记录,PC-B 上的数据网格视图不会自动更新。所以如果我想刷新PC-B上的数据网格视图,我需要按下“REFRESH”按钮来重新加载记录。

那么现在的问题是,还有其他方法可以自动更新“数据网格视图”吗?

我不知道这个方法叫什么名字,所以我希望有人愿意帮助我解决这个问题。如果我的问题已经存在,希望有人能给我一个链接。

感谢帮助 :)

4

2 回答 2

1

为了实现你想要的,你需要做一些相当复杂的架构工作。恐怕这里没有简单的解决办法。

问题是您希望您的数据网格根据事件进行更新,但是该事件发生在数据库中的应用程序之外。为了注册该事件,您需要有一个负责处理所有插入/更新/删除的类或服务。

如果您将所有表或视图定义为 ARTICLES,则您可以拥有一个发布者/订阅者模型。数据服务将处理应用程序的所有插入更新和删除,并将文章已更改的通知推送到文章的所有订阅者。在每个页面上,您都可以有一个订阅与数据网格上显示的数据相关的文章的类,当它收到文章已更新的消息时,将数据网格重新绑定到数据源。尝试阅读这篇关于观察者模式的 WIKIPEDIA 文章,以了解架构可能是什么样子。

http://en.wikipedia.org/wiki/Observer_pattern

于 2012-10-07T10:35:28.737 回答
0

您可以将版本列添加到数据库表中,然后您应该定期询问数据库(池)以获取具有比上次接收的版本更大的记录

于 2012-10-07T10:25:58.643 回答