2011-06-02 159 views
1

我在WPF中開發,希望我的DataGrid在數據庫發生更改時自動刷新,反之亦然。從數據庫自動更新

今天我使用定時器和簡單的選擇來執行更新。 .Net中是否提供了該功能?

回答

2

不幸的是,數據庫是「拉」數據源,並沒有提供任何「推」數據模型,使您的代碼通知有關更改,直到您實現僞推,這基本上是你所提到的,即定時器輪詢數據庫。其他選項可能是實現一個調用CLR SP的觸發器,並且該SP能夠通過遠程處理或類似的方式將數據發送到您的代碼。

+0

這就是我要如何保持網絡流量降到最低。 – overslacked 2011-06-02 07:16:15

+0

遠程處理將只適用於一名消費者,但如果您有多個客戶端,則需要其他東西。 – 2011-06-02 15:21:23

2

一個想法是使用MSMQ。這樣,只要有變化,就可以通知多個客戶端應用程序。您需要在SQL數據庫(或修改數據庫的應用程序)中添加一個觸發器,以便在添加新內容時通知消息隊列(請參閱:Posting Message to MSMQ through SQL Server)。您的客戶端應用程序然後需要訂閱消息隊列,並且將處理在那裏發佈的任何新消息。

也有SQL Server Service Broker但我不是很熟悉,但可能值得調查。

0

嘗試使用SQL Server通知服務。 我以前沒有使用它,但你可以做到這一點使用它