Слушатель изменения базы данных SQL Server C#

Я хочу прислушаться к изменениям в данных в базе данных SQL Server от C#. Я надеялся, что будет своего рода слушатель, которого я мог использовать, чтобы определить, являются ли данные, которые я имею, устаревшими. Несмотря на то, чтобы быть довольно общим сценарием я не могу найти решения, которые не должны просто опрашивать базу данных.

Я использую Linq-SQL, чтобы получить доступ к данным и следовательно сделать, чтобы DataContext возразил, я надеялся, что мог прислушаться на измененном событии данных, но я, может казаться, не нахожу тот.

Я ценю, что это - нетривиальный барьер (От метода C# до SQL Server DB), причина, я ожидал, что это, чтобы быть решенной проблемой - то, что это - общее требование для графический интерфейсов пользователя. Если не возможно Прислушаться к обновлениям, как Вам сохраняют Данные отображенными в GUI новый (Когда это поддерживается источником данных SQL Server).

Хотя это не для работы GUI, я ожидал адаптировать что-то от той области.

Существует ли способ подписаться на события изменения базы данных SQL Server в C#?

20
задан Charles Sprayberry 29 January 2012 в 07:12
поделиться

5 ответов

Я никогда раньше ими не пользовался, но пробовали ли вы уведомления о событиях SQL Server? См. Эту статью: Начало работы с уведомлениями о событиях SQL Server

7
ответ дан 30 November 2019 в 01:16
поделиться

Вы ищете класс SqlDependency, который позволяет прослушивать изменения в наборе результатов SQL-запроса.

7
ответ дан 30 November 2019 в 01:16
поделиться

DataContext не предложит вам никакой функциональности слушателя с SQL Server. Лучше всего создать приложение для опроса или даже отдельный поток, который будет периодически опрашивать базу данных на предмет изменений и выставлять событие, которое сможет прослушать ваше основное приложение.

3
ответ дан 30 November 2019 в 01:16
поделиться

Я бы использовал таблицу с одной строкой в ​​базе данных для каталогизации последних обновленных, вставленных или удаленных событий, а затем создал бы триггеры для каждой важной таблицы для обновления этой таблицы, а затем опросил бы эту таблицу на предмет изменений.

0
ответ дан 30 November 2019 в 01:16
поделиться

Если вы используете SQL Server 2008, имеется довольно удобная встроенная функция отслеживания измененных данных.

http://msdn.microsoft.com/en-us/library/bb522489.aspx

Вы можете читать данные CDC.

1
ответ дан 30 November 2019 в 01:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: