c# - 检测数据库查询更新

标签 c# sql sql-server database wcf

场景如下:

  1. 客户 A 和客户 B 都登录了应用程序。
  2. 客户端 A 和客户端 B 填充了它们的 GridView (显示上传的文件)。
  3. 客户端 A 将文件上传到数据库。
  4. 客户端 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/

相关文章:

c# - 隐藏已编译应用程序的可执行代码的做法

mysql - 每个唯一列值获取一条记录

mysql - 获取唯一的color_id,其中库存数量大于订单数量

sql - 根据条件过滤掉某些行

SQL-从左连接中删除重复项

node.js - 运行azure函数时找不到mssql Node js包

c# - 如何正确实现 .net 标准库的单元测试

c# - Mock 的基类是什么?

c# - 如何在 C# 中使用正则表达式获取某个特定单词之前的数字?

mysql - 对具有一对多关系的 3 个表进行 SQL 查询