XRushdy Ответов: 1

Как лучше всего синхронизировать два приложения C# с одной и той же базой данных по сети


Я начинаю с баз данных,
Сейчас я работаю над проектом клиники

Я разработал приложение для компьютера врача и еще одно приложение для секретаря (просто для создания заказов для пациентов )

приложение секретаря подключается к базе данных удаленно, которая существует на
компьютер доктора

Я сделал таймер, который выполняет сохраненную prosdure (SELECT Statement) каждую секунду, чтобы врач мог видеть вставленные данные из seceratry только тогда, когда они созданы
и держите приложение секретаря всегда обновленным с базой данных тоже
поэтому я построил систему синхронизации на идее таймера и хранимых процедур
но это не работает нормально
иногда запросы блокируют друг друга, потому что у меня нет опыта работы с методами блокировки в sql server, в противном случае повторный запрос влияет на производительность приложения

Что я уже пробовал:

Я слышал о Microsoft sync framework, но я не знаю, как это работает и как это может быть полезно для меня в этом случае

vivvicks

как насчет уровня изоляции майтинанга на уровне БД

1 Ответов

Рейтинг:
1

CHill60

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

Оба приложения "смотрят" на одну и ту же базу данных, поэтому синхронизация не имеет отношения к вашей проблеме.

Лично я бы сделал приложение таким образом, чтобы пользователь должен был обновить представление, и если он попытается ввести какие-либо данные, то данные автоматически обновляются для него. В конце концов, я подозреваю, что доктор будет иметь дело с пациентами, которые не смотрят на его экран, ожидая появления информации.

Класс SqlDependency может быть именно тем, что вы ищете - см. Решение 1 от maciej los здесь - Можно ли отслеживать несколько изменений табличных данных с помощью зависимости SQL table?[^]

Учитывая ваш текущий уровень знаний, я бы просто предоставил кнопку обновления каждому пользователю.