0 / 0 / 0
Регистрация: 19.12.2010
Сообщений: 10
1

При изменении данных в БД синхронизировать с приложением

08.08.2013, 19:51. Показов 2191. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здраствуйте,
стандартная ситуация имеется:
1. нормализованная БД Mysql (серверное ПО на отдельной машине)
2. две формы, первая - отображает данные в датаГриде по щелчку открывается вторая форма на которой редактируются данные выбранной строки.
3. а так же есть кнопка для добавления данных (вызывается вторая форма)
4. данное приложение работать будет на нескольких машинах.

следовательно из этого и вопросы:
1. Как сделать что бы при добавлении или изменении данных после сохранения обновлялись в первой форме, можно конечно обновлять по закрытию второй формы выполнять запрос с БД но тут тогда минимум два минуса, 1 - при обновлении данных в дата гриде собъется позиция позиция скрола и второе при большом объеме данных это мерцания и лишнии движения не понравять пользователя(даже мне).
2. При добавлении новой записи на другой машине то изменения в таблице станут видны только после перезагрузки формы, можно сделать по таймеру но опять те же проблемы что и в первом пункте.
Что можете посоветовать? Какими методами можно решить данную задачу?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.08.2013, 19:51
Ответы с готовыми решениями:

Ошибка при изменении данных
Есть база данных, которая привязана к проекту через Binding Source. Вывожу данные таблицы в...

При изменении типа данных ошибка
Доброго времени суток, дорогие форумчане. Делал программу на C# + Access база. При замене в базе...

Обновление ComboBox при изменении данных
Всем привет, загружаю данные в combo из БД public void SelectDepartment(ControlDepartment dep)...

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

3
1245 / 1055 / 293
Регистрация: 07.03.2012
Сообщений: 3,245
08.08.2013, 19:56 2
создать событие, подписаться на это событие везде где требуется отобразить данные и загружать новые данные
0
438 / 362 / 100
Регистрация: 29.06.2010
Сообщений: 981
Записей в блоге: 1
08.08.2013, 20:16 3
Не изобретайте велосипед, дайте пользователю возможность самому обновить данные. Если данное требование исходит от пользователя, тогда предупредите его о задержках, зависании при работе и т.д.

Если по делу вариантов много от трехзвенки до WCF сервиса.

Во втором случае при запуске клиента он стучится к сервису (ну и периодически проверяет его доступность, что бы держать канал связи), после этого если что то поменялось клиент сообщает сервису, а тот в свою очередь оповещает всех других клиентов.
0
1057 / 864 / 195
Регистрация: 31.03.2010
Сообщений: 2,521
09.08.2013, 14:27 4
1) используем объект DataTable и при добавлении/редактировании данных работаем только с ним
2) создаем привязку этого DataTable к интерфейсу (через BindingSource)
3) после изменения данных выполняем bindingSource.ResetBifings(false);

в случае нескольких приложений в любом случае необходимо периодически опрашивать БД. Чтоб каждый раз без необходимости не грузить данные создаем отдельную таблицу, в которую сохраняем флаг об изменении таблицы, который сбрасывается, скажем, раз в 20 минут. Клиентское приложение смотрит на флаг(раз в 10 минут, чтоб флаг не удалился прежде чем пройдет обновление) - и если таблица обновлена, то только тогда загружает данные из нужной таблицы.Более сложный вариант - написание сервера(службы), которые регистрирует активные программы-клиенты и в который все клиенты будут отправлять сообщение об обновлении таблицы, а сервер, в свою очередь, отравлять его всем другим активным клиентам.
других вариантов нет, так как сервер БД не умеет отправлять уведомления.
0
09.08.2013, 14:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.08.2013, 14:27
Помогаю со студенческими работами здесь

Ошибка при изменении данных через Entity Framework
Столкнулся с проблемой обновления данных, сам еще новичок в Entity. Добавляет в таблицу все ок, но...

Как убирать пробелы при добавлении, изменении данных в БД?
Здравствуйте, как убирать пробелы при добавлении,изменении данных в бд? Добавляю с текст боксов....

LocalDB. Обновление данных в DataGridView при изменении строки подключения
Доброго времени суток! Пытаюсь разобраться с LocalDB. Организовал метод, который в App.config...

Firebird 2.5 Автоматическое обновление содержимого DataGridView при изменении данных
Всем доброго времени суток подскажите как обновлять автоматически Datagridview при добавлении,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru