【发布时间】:2015-07-07 14:46:00
【问题描述】:
我有一个关于 sql 依赖的问题。假设我的应用程序在底层查询数据更改时收到通知,并且我计划从表中选择数据,处理它并重新订阅/重新启动依赖项。如果处理需要 1-2 分钟,同时在此处理时间内可能会添加一些数据。不确定这些数据将如何得到通知,或者我是否必须等待下一次更改发生(可能需要几分钟到几小时)?
以下是我的示例代码,如果我遗漏了什么,请告诉我
代码:
private void LoadNotifications()
{
DataTable dt = new DataTable();
using (SqlCommand command = new SqlCommand("SELECT ID FROM dbo.NOTIFICATIONS", m_sqlConn))
{
command.Notification = null;
SqlDependency dependency = new SqlDependency(command);
dependency.OnChange += new OnChangeEventHandler(OnDependencyChange);
if (m_sqlConn.State == ConnectionState.Closed)
{
m_sqlConn.Open();
}
//using (SqlDataReader reader = command.ExecuteReader())
//{
// if (reader.HasRows)
// {
//lETS ASSUME THIS TAKES 2-3 MINUTES
// }
//}
}
}
private void OnDependencyChange(object sender, SqlNotificationEventArgs e)
{
SqlDependency dependency = sender as SqlDependency;
dependency.OnChange -= OnDependencyChange;
LoadNotifications();
}
【问题讨论】:
标签: c# sql sqldependency