我需要在一个数据网格上显示我的数据库(postgresql)中的一个表的内容。我正在使用WPF,但我正在考虑迁移到Avalonia。我可以很容易地连接www.example.com或c#中的数据库vb.net并填充数据网格。问题是另一个应用程序可以写入此数据库,因此数据可以更改,我需要显示任何时候的实际值。
那么,有没有什么方法可以将表与datagrid“绑定”,以通知数据库更改?或者我应该简单地放置一个计时器并每秒查询一次?
我需要在一个数据网格上显示我的数据库(postgresql)中的一个表的内容。我正在使用WPF,但我正在考虑迁移到Avalonia。我可以很容易地连接www.example.com或c#中的数据库vb.net并填充数据网格。问题是另一个应用程序可以写入此数据库,因此数据可以更改,我需要显示任何时候的实际值。
那么,有没有什么方法可以将表与datagrid“绑定”,以通知数据库更改?或者我应该简单地放置一个计时器并每秒查询一次?
1条答案
按热度按时间but5z9lq1#
您最简单的选择是每分钟轮询一次或随便什么。
Postgresql有监听和通知,但我不推荐这些。
https://www.postgresql.org/docs/9.0/sql-notify.html
我所看到的其他(更)实用的方法相当复杂。
例如,对数据库的所有更新都是通过网络层进行的。
然后,这些更改还存储每次更改的时间和更改数据。表、ID、更改类型和时间。
订阅流程的客户端使用上面的方法来编写更改,以备它们拾取。
然后,客户端可以只提取应用于客户端缓存的那些更改。
或者,存在将改变发送到客户端的推送服务。
通常使用Web套接字。
完全完善的实现似乎可能是大规模的矫枉过正,但可以支持大量的客户端。例如,对于在线投注(客户端在浏览器中),每个玩家都需要看到不断变化的赔率和新事件的出现。