我正在开发WPF,并希望我的DataGrid在数据库发生变化时自动刷新,反之亦然。
今天我正在使用Timers和简单的Selects来执行更新。 .Net中是否有提供该功能的东西?
答案 0 :(得分:2)
不幸的是数据库是"拉"数据来源,并没有提供任何" Push"数据模型,使您的代码通知有关更改,直到您实现伪推送,这基本上是您提到的,即计时器轮询数据库。其他选项可能是实现一个调用CLR SP的触发器,该SP能够通过远程处理或类似的方式将数据发送到您的代码。
答案 1 :(得分:2)
一个想法是使用MSMQ。这样,无论何时发生变化,都可以通知多个客户端应用程序您需要在SQL数据库(或正在修改数据库的应用程序)中添加触发器,以便在添加新内容时通知消息队列(请参阅:Posting Message to MSMQ through SQL Server)。然后,您的客户端应用程序需要订阅Message Queue,并对将在那里发布的任何新消息采取行动。
还有SQL Server Service Broker但我对此并不熟悉,但可能值得研究。
答案 2 :(得分:0)
尝试使用SQL Server Notification Services。 我之前没有使用它,但你可以用它来做到这一点