2009-08-17 111 views
0

我遇到以下情況:在表單加載時查詢的數據庫中有一個表格,檢索到的數據通過下面的DataTable填充到DataGridView中。數據加載後,用戶可以自由修改數據(添加/刪除行,修改條目)。將DataGridView(DataTable)與數據庫同步

該窗體有2個按鈕:ApplyRefresh。第一個將更改發送到數據庫,第二個從數據庫重新讀取數據並擦除用戶所做的任何更改。

我的問題是:這是保持DataGridView與數據庫同步的最佳方式(從用戶的角度)?

現在這些都是缺點:

  1. 用戶必須跟蹤他正在做什麼,必須按下按鈕,每而
  2. 的修改都將丟失如果窗體關閉/應用程序崩潰/ ...

我試圖將更改發送到數據庫的CellEndEdit事件,但用戶還需要一些撤銷/重做功能,這是......好吧......一個不同的故事。

那麼,有什麼建議嗎?

回答

1

我會說,你現在這樣做的方式很好。如果您在用戶仍在編輯時嘗試更新數據庫,則可能會遇到更新或修改用戶可能最終決定不想更改的問題。此外,這有可能大大增加數據庫調用的數量。

強制用戶單擊「應用」有助於確保只有用戶實際需要的更改纔會發送到數據庫。

至於失去應用程序崩潰之前應用它們的變化,我會更關注爲什麼應用程序崩潰。

+0

謝謝 - 我想這是最好的方法。 – 2009-08-19 11:55:58

0

要記住的唯一重要的事情是,您應該在保存數據之前重新提取數據,並且重新獲得的數據應該仍然與您最初顯示給用戶的數據相匹配。如果沒有,其他人做出了改變,你的用戶將不知不覺地被覆蓋。你的用戶可能不會那麼喜歡。

你如何處理這取決於你的客戶在他們的數據庫中需要什麼。