从数据库自动更新

时间:2011-06-02 06:58:37

标签: c# .net wpf database ado.net

我正在开发WPF,并希望我的DataGrid在数据库发生变化时自动刷新,反之亦然。

今天我正在使用Timers和简单的Selects来执行更新。 .Net中是否有提供该功能的东西?

3 个答案:

答案 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。 我之前没有使用它,但你可以用它来做到这一点