场景如下:
- 客户 A 和客户 B 都登录了应用程序。
- 客户端 A 和客户端 B 填充了它们的 GridView (显示上传的文件)。
- 客户端 A 将文件上传到数据库。
- 客户端 B 必须检测到添加了数据(客户端 A 上传的文件)并再次重新填充 GridView 。
我需要知道第 4 步的工作流程。我阅读了有关使用 SqlDependency
的信息,并查看了这篇文章 http://rusanu.com/2007/11/01/remove-pooling-for-data-changes-from-a-wcf-front-end/
但是,如果我没记错的话,本文使用了 SQL Server 2008 中已弃用的 Notification Services。我还想知道如何在检测到数据库中的查询结果发生变化时在客户端中注册代码。谢谢
已编辑
目前的选项是 SqlDependency、触发器、WCF、观察者模式。如果有人知道这些解决方案中的任何一个是否可以/不能在我的场景中实现,请随时发表评论并让我知道。
最佳答案
您可以在应用层执行此操作。 您可以使用集中化方法/类来更新数据库中的文件。 然后您可以注册观察者(观察者模式)以获取任何更新的通知。 通过这种方式,您可以在数据库中的数据更改时刷新多个客户端。
只有在没有来自其他进程或直接数据库更新的数据更改时,上述建议才有效。
关于c# - 检测数据库查询更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17771331/