一尘不染

如何使用C#监视SQL Server表更改?

c#

我有多个应用程序正在访问同一数据库,并且如果这些应用程序之一更改了某个表中的任何内容(更新,插入),我需要得到通知。

数据库和应用程序不在同一服务器上。


阅读 512

收藏
2020-05-19

共1个答案

一尘不染

您可以使用SqlDependency Class。它的预期用途主要用于ASP.NET页(客户端通知数量少)。

ALTER DATABASE UrDb SET ENABLE_BROKER

实施OnChange事件以获取通知:

void OnChange(object sender, SqlNotificationEventArgs e)

并在代码中:

SqlCommand cmd = ...
cmd.Notification = null;

SqlDependency dependency = new SqlDependency(cmd);

dependency.OnChange += OnChange;

它使用 Service Broker (基于消息的通信平台)从数据库引擎接收消息。

2020-05-19