Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.04.2016, 16:26   #1
sveta_ahina
Новичок
Джуниор
 
Регистрация: 18.04.2016
Сообщений: 2
По умолчанию Механизм обновления данных в на формах

Господа программисты, подкиньте идею.

Имеется многопользовательское mdi-приложение баз-данных (C# WinForms - sqlserver).
Большинство форм - это сетка данных DataGridView расширенная на всю область.

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

Хочу создать механизм обновления строчек DataGrid-ов.
sveta_ahina вне форума Ответить с цитированием
Старый 18.04.2016, 16:47   #2
sveta_ahina
Новичок
Джуниор
 
Регистрация: 18.04.2016
Сообщений: 2
По умолчанию Мой вариант такой.

1. В БД создаю таблицу DataUpdate (Datetime ActionDate, string ActionName, string TableName, int RowID);
2. В БД на все Insert, Update, Delete всех таблиц создаю триггеры. Все триггеры дополнительно пишут в таблицу DataChangeTable ('18.04.2016 12:10:33', 'UPD/DEL/INS', 'PERSON', 88);
3. В С# cоздаю класс UpdateManager, который каждые 5 сек. получает новые данные из таблицы DataChangeTable и всем своим подписчикам вызывает метод OnDataChanged.
4. Все DataGrid делаю подписчиками UpdateManager-а, всем реализую метод OnDataChanged.
sveta_ahina вне форума Ответить с цитированием
Старый 18.04.2016, 18:42   #3
Скарам
Дружите с Linq ;)
Форумчанин
 
Аватар для Скарам
 
Регистрация: 15.10.2008
Сообщений: 823
По умолчанию

Лучше использовать не опрос,а event broker. Таким образом Вы снизите нагрузку на базу.
Вообще наилучший вариант не использовать таблицу, триггеры и т.д. Используйте RabbitMq или акторную модель передачи данных (akka.net etc). Такие решения будут легко масштабироваться, не создают лишнюю нагрузку на БД, смена базы пройдет менее болезненно, дает запас фич на будущее.
Не давай организму поблажки, каждый день тренируй его в шашки..
Скарам вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
макрос обновления данных из интернета Legame Microsoft Office Excel 14 01.10.2015 09:26
Срабатывание антивирусов на механизм обновления проекта Daemvil Общие вопросы Delphi 7 28.03.2015 15:13
Механизм взаимодействия с базой данных arhiepiskop Помощь студентам 1 02.06.2010 18:31
База данных,механизм ADO 9rki Помощь студентам 3 27.05.2010 13:32
Редактирование данных БД, расположенных на разных формах mn-home БД в Delphi 3 06.03.2009 13:38