我正在使用 C# 开发一个 Windows 应用程序。我想在将新行插入特定表时显示气球通知。该应用程序将安装在多台计算机上,并将通过 LAN 共享一个公共数据库。目前我正在使用轮询来实现这一点。那就是应用程序将每秒查询数据库表以检查是否插入了新行。请让我知道这是正确的方法还是有更好的方法?我知道使用触发器我们可以在 SQL Server 中执行查询以进行表插入,但是是否可以将消息从已将新行插入表中的 SQL Server 发送回特定应用程序?请帮忙
问问题
440 次
1 回答
2
我认为您可以通过结合使用 SQL CLR 触发器和 Win32 API 函数来完成此操作。使用 CLR 触发器将有助于避免轮询。
这是一篇关于编写 CLR 触发器的 MSDN 文章。
显示的示例代码正在记录到某个审计表。交换该部分以调用 Shell_NotifyIcon Win32 API 函数。 这是 MSDN 中关于使用Shell_NotifyIcon 显示气球通知的示例。
实际的示例代码在此页面上(搜索 notificationicon.zip)并用 C++ 编写,但是一旦您执行 DLL 导入并使用 PInvoke,您应该能够为 C# 修改它。有关更多信息,请参阅此 SO 线程。
于 2013-11-04T16:30:32.583 回答