每当从 Web 应用程序向 SQL Server 数据库中添加一行时,我都需要触发一个在任务栏托盘中运行的 Winforms 程序。有办法做到这一点吗?
目前,该程序一直在运行,检查数据库中是否有新记录,如果没有插入任何内容,则让底层线程休眠,但我还需要能够在用户插入一行时触发程序运行网络应用程序前端。
补充:网络应用、数据库和winforms在同一台服务器上运行。
谢谢
最佳答案
从 SQL Server 中的插入触发附加操作的“标准”方法:
如果附加操作是数据库本地的,并且完全可以在 transact SQL 中实现,建议只将它写在 a trigger 中。 .
如果附加操作无法在事务 SQL 中实现,那么您可以考虑编写一个 CLR 触发器。但是,我再次强调,这仅适用于发生在数据库本地的情况。
如果附加操作适合服务器,但依赖于例如其他数据库或服务器外部的其他功能,那么您通常希望将其他操作与原始 INSERT
操作分离。正如其他人所说,处理此问题的两种方法是 SqlDependency,或 Service Broker。 .
如果您要走 SqlDependency 路线,则需要永久运行的东西才能使用此对象。这是您通常放在 Windows 服务中的内容。
关于c# - 每当通过 Web 应用程序将记录插入 SQL Server 时,触发 winforms 程序运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4872142/