我有一个表和一个SqlDependency,正在等待新的插入。
OnChange会在我需要的时候触发,但我不知道是否有可能获得导致数据库更改的行。
SqlDependency sql命令:
SqlCommand cmd = new SqlCommand("SELECT id FROM dbo.DataRequests", m_sqlConn);OnChange代码:
private void OnChange(object sender, SqlNotificationEventArgs e)
{
SqlDependency dependency = sender as SqlDependency;
dependency.OnChange -= OnChange;
Console.WriteLine("Info: " + e.Info.ToString());
Console.WriteLine("Source: " + e.Source.ToString());
Console.WriteLine("Type: " + e.Type.ToString());
Console.WriteLine(DateTime.Now);
GetMessages();
}发布于 2013-02-14 23:04:16
没有关于导致触发依赖项的行的信息。
我猜作为一种变通方法,你可以在你的记录上加上一个时间戳,并跟踪事件最后一次触发的时间。
发布于 2015-08-10 15:24:45
看看这个组件:SqlTableDependency
对于对SQL Server数据库表所做的每个更改,C#代码都会收到一个事件,其中包含已更改记录的列表。
发布于 2013-02-14 22:58:32
根据这篇文章,你不能:http://social.msdn.microsoft.com/Forums/en-US/sqlservicebroker/thread/07234067-73e1-4db5-a4e6-0f9f0bae22ae/
您只能通过使用属性来缩小通知原因的范围
提供的SqlNotificationEventArgs的
https://stackoverflow.com/questions/14877505
复制相似问题