gpt4 book ai didi

c# - 数据库数据更改时更新用户界面

转载 作者:行者123 更新时间:2023-12-02 09:36:53 24 4
gpt4 key购买 nike

是否有任何方法可以在数据插入数据库后自动更新表单上的控件(例如:datagrid)?

示例:

  1. A 的计算机上有一个仪表板,用于监控高级库存明细。
  2. B、C 和 D 分别向库存数据库添加了新商品。
  3. B、C 和 D 的操作应立即反射(reflect)在 A 的操作上(实时),无需计时器、间隔或手动刷新。

是否可以通过 C# WinForms 实现此目的?我已经研究并尝试过有关 SignalR 的内容,但我认为这不是我想要/需要的。

谢谢。

最佳答案

假设您的数据库是 MSSQL。

我很遗憾地说,如果不通过轮询请求访问 SQL DB,您就无法实现您想要的目标。您可以尝试SQLDependency正如 @Cyber​​ Progs 在评论中提到的,但我仍然认为这不会有多大好处。但是,嘿,尝试并没有坏处:)所以去吧。

SQL 更像是一种你所求即所得。反之则不然。因此,除非您使用计时器或手动刷新向数据库发出轮询请求以获取所需的任何表的详细信息,否则 SQL 本身将不会通过对您的程序进行更新。

由于您已经尝试并离开了 SignalR,我建议使用 Timer + 多线程。除此之外,我没有看到更适合您需要实现的目标的方法。

另外一个更方便的选择是使用驻留在System.IO.FileSystemWatcher中的FileSystemWatcher。您可以做的是在您想要收到通知的表上创建一个 SQL 触发器

每当 INSERTUPDATEDELETE 时,此触发器最终只会更改(修改)本地/网络文件 查询已运行。

文件本身没有任何内容,只是其修改日期会在每次触发器运行时发生变化。

您现在可以使用 FileSystemWatcher 在应用程序中进行编码来监视此(本地/网络)文件。如果它被修改,只需对数据库进行快速轮询并获取最新数据。

关于c# - 数据库数据更改时更新用户界面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45272867/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com