2013-05-05 66 views
1

您好,我正在製作一個帶MS Access數據庫的小型數據庫應用程序。我從文本框添加到數據庫,並從數據庫中刪除使用組合框,並顯示在datagridview中的數據庫添加似乎工作正常,除了自動增量沒有顯示重新啓動之前,我不能刪除,因爲當我調用更新後刪除它給了我一個DBConcurrencyException我試圖在更新之前添加acceptchanges,並沒有給出任何錯誤,但更改沒有保存到數據庫。我是否需要在.Update()之前調用.AcceptChanges()之後刪除操作

這裏是我的兩個問題

  • 如何使自動增量節目而無需重新啓動應用程序。(這不是那麼重要我可以隱藏ID列)

  • 最重要的是如何使刪除工作。

此外,我使用OleDbCommandBuilder的更新方法

+0

.AcceptChanges()告訴數據集/數據表,沒有更多的更改要保存到數據庫。所以:.Update()在.AcceptChanges()之後對數據庫沒有影響。 – k3b 2013-05-05 07:36:31

回答

1

你有2個查詢

自動遞增:請參考here其中規定,你應該執行一個選擇查詢,以填補該數據庫自動生成的值回數據集表。

關於刪除,只需刪除數據表中的行,其行狀態將標記爲Deleted。當您使用適配器將其更新到數據庫時,它會找到要刪除的行並相應地在數據庫中執行刪除操作。當您調用acceptchanges()時,它將標記所有行都處於original狀態,並且不會導致數據庫更新。

EDIT

當沒有一個CRUD操作的效應發生的DBConcurrency異常。有關更多詳細信息,請參閱here

相關問題