我正在開發一個使用C#的Windows應用程序。我想在新行插入特定表格時顯示氣球通知。該應用程序將安裝在許多計算機上,並將通過LAN共享一個公用數據庫。目前我正在使用輪詢來實現這一點。也就是說,應用程序將每秒鐘查詢數據庫表以檢查是否插入了新行。請告訴我這是否是正確的方法,還是有更好的方法?我知道使用觸發器,我們可以在SQL服務器中執行查詢以進行表插入,但是是否可以從SQL Server中將特定應用程序發送回特定應用程序,並將新行插入表中?請幫忙在表格插入時顯示窗口氣球通知
回答
我想你可以用SQL CLR觸發器和Win32 API函數的組合來實現這個功能。使用CLR觸發器將有助於避免輪詢。
Here's an MSDN article關於編寫CLR觸發器。
顯示的示例代碼正在記錄到某個審計表。交換該部分以調用Shell_NotifyIcon Win32 API函數。 Here's a sample from MSDN on using the Shell_NotifyIcon顯示氣球通知。
實際示例代碼是on this page(搜索notificationicon.zip)並使用C++編寫,但是一旦執行了DLL導入並使用PInvoke,就應該可以對其進行修改。有關更多信息,請參閱this SO thread。
我是否正確理解這一點:此CLR觸發器會通知**插入應用程序的任何**實例?或者它只會通知啓動插入的實例? –
我還沒有測試過它,但我認爲它只會通知啓動插入的實例。爲了廣播它,我想知道是否可以在客戶端可以訂閱的CLR函數中引發一個事件,並且在這種情況下,執行氣球通知。 – Shiva
那麼也許你應該擴大你的答案。 OP正在使用輪詢,這很可能意味着他們希望檢測*任何*新的插入到表中。 –
- 1. 如何增加窗口上氣球彈出通知的時間
- 2. 氣球彈出窗口WPF
- 3. 如何在Windows氣球通知中顯示圖像?
- 4. 工具提示氣球顯示位置(錯誤通知)
- 5. 檢測通知氣球
- 6. 顯示在android_version氣球2.2
- 7. 顯示窗口通知與DataGrid或表格格式數據在C#
- 8. 獲取窗口,同時點擊氣球工具提示
- 9. 試圖用紅寶石顯示一個氣球通知
- 10. 鉻應用程序通知不顯示氣球notif
- 11. 強制顯示系統托盤通知氣球
- 12. 如何在地圖顯示時在地圖上顯示氣球?
- 13. C#/文本框和顯示通知氣球的過濾器輸入
- 14. 在彈出窗口中顯示錶格
- 15. Amcharts XY圖表不顯示氣球
- 16. 想要顯示氣球
- 17. 氣球沒有顯示NotifyIcon.ShowBalloonTip
- 18. 谷歌地球插件氣球:顯示了事件
- 19. 從android氣球刪除覆蓋窗口
- 20. 子窗口關閉時通知窗口
- 21. 如何在Delphi中顯示Vista風格的氣球提示?
- 22. 如何根據需要顯示shell通知圖標氣球工具提示?
- 23. 任務托盤通知氣球事件?
- 24. 簡單的jQuery就地「氣球」通知
- 25. 更改通知氣球大小
- 26. Gvim - YCM - 在氣球中顯示錯誤
- 27. 關閉氣球在MapView上顯示
- 28. 在顯示窗口時顯示值
- 29. 通過JFrame窗口臨時顯示JPanel
- 30. qtip2氣球和php表格:每行不同的氣球內容?
非常開放的問題......有很多方法!您是否擁有中央服務,或者每個請求中的所有客戶端都訪問了數據庫? – Belogix
每秒輪詢數據庫可能對性能不利。就我個人而言,我會考慮有一個處理通知並將它們傳遞給所有連接的應用程序的Windows/Web服務。因此,當您的應用程序的一個實例插入一行時,它會通知該服務,然後該服務會向所有其他連接的(偵聽)應用程序發出通知。祝你好運! – musefan
@Belogix謝謝。我沒有中央服務。所有的客戶端都會查詢數據庫。請讓我知道最好的方法。我如何創建一箇中央服務? – user1690835