c# - 每当通过 Web 应用程序将记录插入 SQL Server 时,触发 winforms 程序运行

标签 c# sql-server triggers

每当从 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/

相关文章:

c# - 检索映射时,嵌套忽略复杂属性

sql - 在 SQL Server 中加密列上的运算符搜索

sql-server - 如何删除 Sql Server 2005 中存在的临时 SP

mysql - "AFTER INSERT' 触发器中的 Updata 计算字段

c# - for 循环和带闭包的 foreach 循环的不同行为

C# 迭代类属性并添加到列表某些类型

c# - 如何从 float 数组中找到最小值和最大值?

c# - 如何知道 Linq To SQL 中的字段是否为数字

mysql - Else-If 不在触发器定义中工作

批量插入后MySQL触发器