Обновление клиента C # при обновлении базы данных - PullRequest
2 голосов
/ 22 сентября 2010

Я использую MySQL с C # / Visual Studio 2008. Мне нужно знать любой метод, чтобы, если один пользователь обновляет базу данных, все зарегистрированные пользователи по сети были уведомлены о том, что произошло изменение.Если я вошел в базу данных через мое приложение, то в это время серийный номер последней записи в базе данных был 10, а затем я, кто-то с привилегиями, обновляет запись в базе данных, и в то же время я получаю уведомление, чтоБаза данных была обновлена ​​с новой записью.Типичным примером может служить оповещение MSN messenger для друга, когда он выходит в сеть ... Хотя я действительно не хочу, чтобы это всплывающее окно, но функция оповещения - что-то вроде этого ...

Еще одна вещь, которую нужно спросить:Мне нужна функциональность, например, если статус записи не обновляется (например, более 3 часов), а затем я хочу, чтобы все пользователи также получали оповещения об этой проблеме.Эта функциональность необходима для всех записей, а не только для новых записей.

Ответы [ 3 ]

2 голосов
/ 22 сентября 2010

Довольно длинный ответ, но ваша лучшая ставка будет выглядеть примерно так: SqlCacheDependency .

Также вы можете использовать метод под названием «Обратный AJAX», который используется в уведомлениях Почты Google, о котором говорилось здесь: Как работает уведомление о входящей почте в Gmail?

Помимо этих двух, ваши собственные опции AFAIK - это простой опрос сервера.

Кроме того, вы не упомянули, что ваш клиент .

Это общедоступный веб-сайт в Интернете? Это приложение для интрасети, это приложение для WPF?

Если это веб-сайт, то лучше всего использовать обратные вызовы на стороне клиента, использующие технику обратного AJAX, о которой я упоминал.

1 голос
/ 22 сентября 2010

Возможно, вам необходимо разработать какую-то функциональность опроса в вашем клиенте.Например, вы можете каждую минуту отправлять запрос с запросом к базе данных: «Обновляете ли вы что-нибудь с [дата последнего обновления клиента]?»Если база данных отвечает true, вы разрешаете клиенту запрашивать полный набор обновлений.Если нет, дайте ему поспать еще минуту.

0 голосов
/ 22 сентября 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...