我想知道我應該如何處理的情況下在用戶界面時:處理併發在當數據記錄被刪除,用戶界面/更新
1)用戶刪除其已經獲得的數據記錄被其他用戶刪除
當數據記錄已被刪除時,它不會再被刪除,並且會出現類似「從表中刪除ID = @IdToDelete」的情況。
但是我不應該告訴我的用戶:「對不起,我們無法刪除數據記錄,因爲它已經被用戶xyz刪除了」??
2.)用戶更新已被其他用戶修改的數據記錄? 我應該爲所有更新()場景顯示一個窗口給用戶新的價值和舊的價值,讓他選擇或決定什麼會贏?
我想知道我應該如何處理的情況下在用戶界面時:處理併發在當數據記錄被刪除,用戶界面/更新
1)用戶刪除其已經獲得的數據記錄被其他用戶刪除
當數據記錄已被刪除時,它不會再被刪除,並且會出現類似「從表中刪除ID = @IdToDelete」的情況。
但是我不應該告訴我的用戶:「對不起,我們無法刪除數據記錄,因爲它已經被用戶xyz刪除了」??
2.)用戶更新已被其他用戶修改的數據記錄? 我應該爲所有更新()場景顯示一個窗口給用戶新的價值和舊的價值,讓他選擇或決定什麼會贏?
1)通常,我不希望任何消息在這裏顯示給用戶,因爲他們要求完成的功能。
2)這是您經常會嘗試更新顯示給用戶的修改記錄的警告。如何顯示該警告取決於用戶的要求以及要顯示的警告的複雜程度。最簡單的解決辦法是警告他們並要求他們刷新本地記錄副本,但這通常意味着他們需要重新做他們的更改,這對用戶來說是一個挫折點。向他們展示衝突將會是一個更好的用戶體驗,但是對於大型記錄可能會更復雜一些。
1)信息從哪裏來?如果你不記錄誰刪除了什麼記錄,那麼數據庫不會告訴你這些信息。
2)這取決於你的應用程序 - 有些情況下,「最後的勝利」策略是好的,有些情況下它不是好的。如果存在衝突,你決定你需要/想要做什麼
1)ExecuteNonQuery(delete)有一個返回參數,它是受影響的記錄,可以很容易地檢查... – Pascal
我改述了我的問題2)我是否應該爲所有更新語句顯示新舊值窗口,因爲對於每個人來說,可能有一個髒字段已被另一個用戶。 – Pascal