我一直在這個問題上幾天,希望有人可能有一個答案。我想對這個問題的更一般的描述是,多個用戶將從一個應用程序的多個實例中訪問一個數據庫,並且我想盡可能保持當前數據的副本。這是我目前的嘗試,但我願意保證本地副本與數據庫同步。更新本地數據表,從數據庫
我有兩個數據表:
dtOriginal被加載在應用程序的啓動和允許用戶對其進行編輯。
dtFromDb是在用戶更改窗體上顯示的記錄並僅包含更改後顯示的記錄的當前值時加載的。
我試圖從dtFromDb只有在dtOriginal該行沒有被標記爲「修改」的值更新dtOriginal表。
我已經與System.Data.DataTable類的合併方法嘗試此。
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確實從數據庫獲取更新的值,但我不能正確使用合併方法,因爲更新的值不會傳播到本地副本。
任何想法將不勝感激。
感謝,
泰勒
要更新dtFromDb的價值dtOriginal或數據庫?並且還告訴你如何使用任何循環來更新數據庫中的記錄? –