Я работал над этой проблемой в течение нескольких дней и надеялся, что у кого-то может быть ответ.Я предполагаю, что более общее описание проблемы состоит в том, что несколько пользователей будут обращаться к базе данных из нескольких экземпляров приложения, и я хотел бы, чтобы локальная копия данных была как можно более актуальной.Это моя нынешняя попытка сделать это, но я открыт для любого способа синхронизации локальной копии с базой данных.
У меня есть две таблицы данных:
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 действительно получает обновленные значения из БД, но я не должен правильно использовать метод слияния, так как обновленные значения не передаются в локальную копию.
Любые идеи будут высоко оценены.
Спасибо,
Тайлер