我正在使用C#开发一个Windows应用程序。我想在将新行插入特定表时显示气球通知。该应用程序将安装在许多计算机上,并将通过LAN共享一个公共数据库。目前我正在使用民意调查实现这一目标。那就是应用程序将每秒查询数据库表以检查是否插入了新行。请让我知道这是否是正确的方法还是有更好的方法呢?我知道使用触发器我们可以在SQL服务器中执行查询以进行表插入,但是是否可以从已将新行插入表中的SQL服务器将消息发送回特定应用程序?请帮忙
答案 0 :(得分:2)
我认为您可以通过结合使用SQL CLR触发器和Win32 API函数来实现此目的。使用CLR触发器有助于避免轮询。
编写CLR触发器时显示的示例代码是记录到某个审计表。交换该部分以调用Shell_NotifyIcon Win32 API函数。 Here's a sample from MSDN on using the Shell_NotifyIcon 显示气球通知。
实际示例代码为on this page(搜索notificationicon.zip)并使用C ++编写,但是一旦执行DLL导入并使用PInvoke,您应该能够为C#修改它。有关详情,请参阅this SO thread。