Подтвердить что ты не робот

SQL Server Database List Listener С#

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

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

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

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

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

4b9b3361

Ответ 1

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

Ответ 3

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

Ответ 4

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

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

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

Ответ 5

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