Обновление локальных данных из базы данных - PullRequest
0 голосов
/ 09 сентября 2011

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

У меня есть две таблицы данных:
dtOriginal isзагружается в начале приложения, и пользователю разрешено редактировать его.

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

Я пытаюсь обновить таблицу dtOriginal этими значениями из dtFromDb, только если строка в dtOriginal не помечена как «измененная».

Я пытался сделать это с помощью метода слиянияSystem.Data.DataTable class.

StronglyTypedDataTable dtOriginal = StronglyTypedDataTableAdapter.GetData();
// User modifies one record through collectionview...
// displayed record is then changed and the following occurs
StronglyTypedDataTable dtFromDb = StronglyTypedDataTableAdapter.GetDataByID(currentID);
dtOriginal.Merge(dtFromDb, true);

Я бы ожидал, что любые строки, помеченные как «неизмененные», будут обновлены новыми локальными значениями из базы данных, если они изменились в другом экземплярепрограммы и были распространены обратно в базу данных, но это не так.Похоже, dtFromDb действительно получает обновленные значения из БД, но я не должен правильно использовать метод слияния, так как обновленные значения не передаются в локальную копию.

Любые идеи будут высоко оценены.

Спасибо,

Тайлер

1 Ответ

0 голосов
/ 09 сентября 2011

Я вижу, что вы пытались вручную решить что-то, что не принадлежит вашему приложению: параллелизм данных!

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

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

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