我想监视SQL Server表中的插入。就像表(userData)中的两列UserID和Activity一样,以便在对该表进行插入时,我立即获得插入并传递给C#的值。
我想使用每个插入进行比较,例如将每个插入与某个值进行比较并对其进行操作。
PS。我知道如何使用C#从SQL Server获取数据并将数据插入SQL Server表。但是不知道如何实时地实现这一目标,从而对他们做出决定。
答案 0 :(得分:2)
您可以使用SqlDependency
类并使用它的OnChange
事件。浏览链接的MSDN文档,以查看有关如何操作的示例。
dependency.OnChange+=new
OnChangeEventHandler(OnDependencyChange);
答案 1 :(得分:0)
创建插入触发器
CREATE TRIGGER [dbo].[userDataInsert]
ON [dbo].[userData]
FOR INSERT
AS
BEGIN
SET NOCOUNT ON
select *
from inserted
-- do whatever you need with inserted
END
答案 2 :(得分:0)
使用情况还可以查看 SqlTableDependency 。它是一个c#组件,当记录更改时引发事件。您可以在https://github.com/christiandelbianco/monitor-table-change-with-sqltabledependency
中找到更多详细信息SqlTableDependency 是一个高级C#组件,用于审核,监视和接收有关SQL Server记录表更改的通知。对于任何记录表更改,作为插入,更新或删除操作,包含更改记录值的通知将传递到SqlTableDependency。该通知包含插入,更新或删除记录值。
此表记录跟踪更改系统的优点是避免选择检索更新的表记录,因为更新的表值记录是通过通知传递的。