SqlDependency通知sql server 2005不会在多个插入上触发

问题描述 投票:0回答:1

我正在使用sqlServer 2005上的sqlDependency。问题是:

  1. 如何有效地重新初始化sqlDependency以便它可以多次触发?

这是我的reregistring sqlDependency通知的实现:

SqlCommand command = new SqlCommand(sqlCommandString, openedConnection);
SqlDependency sqlDependency = new SqlDependency(Command);
sqlDependency.OnChange += this.OnChangeHandler;
command.ExecuteNonQueryAsync();
  1. 但是这种方法的问题在于,如果我同时在数据库中运行多个插入操作,那么onChange Handler只运行一次。为什么会这样?

Edit1:同时说我的意思是一个接一个地运行sql命令,这样它们之间的延迟非常小。

例如:

INSERT...;
INSERT...;
INSERT...;

在这些命令之后我只收到一个通知,而如果我逐个运行所有这些命令,我​​会收到所有3个通知

这是我称之为OnChangeHndler的函数:

public void RegisterSqlDependency(string sqlCommandString, EventHandler eventHandler)
    {
        SqlCommand command = new SqlCommand(sqlCommandString, this.connection);
        SqlDependency sqlDependency = new SqlDependency(command);
        sqlDependency.OnChange += this.OnChangeHandler;
        command.ExecuteNonQueryAsync();
    }
c# .net sql-server-2005 sqldependency
1个回答
1
投票

这里描述了实现SQL依赖关系的有效方法,请查看 -

http://www.codeproject.com/Articles/12335/Using-SqlDependency-for-data-change-events

另请参阅以下讨论 -

SQLDependency_OnChange-Event fires only one single Time

© www.soinside.com 2019 - 2024. All rights reserved.