Существует также механизм ADO.NET SqlDependency , если вы используете клиентскую ADO.NET с C # или VB.NET
Объект SqlDependency может быть
связанный с SqlCommand в порядке
определить, когда результаты запроса отличаются
из тех, которые первоначально получены. Вы
также может назначить делегата
Событие OnChange, которое сработает, когда
результаты меняются для ассоциированного
команда. Вы должны связать
SqlDependency с командой перед
Вы выполняете команду.
HasChanges свойство объекта
SqlDependency также можно использовать для
определить, есть ли у результатов запроса
изменилось, так как данные были первыми
получен.
Вы в основном связываете SqlDependency
с вашим SqlCommand и предоставляете обработчик событий, который вызывается при изменении значений, составляющих набор результатов этого SqlDependency.
using(SqlCommand cmd = new SqlCommand(queryStatement, _conn))
{
cmd.Notification = null;
SqlDependency dependency = new SqlDependency(cmd);
dependency.OnChange +=
new OnChangeEventHandler(OnChange);
......
}
В обработчике событий вы можете делать то, что вам нужно.
void OnChange(object sender, SqlNotificationEventArgs e)
{
SqlDependency dependency = sender as SqlDependency;
(do whatever you need to do - e.g. reload the data)
}
Марк