2012-11-08 26 views
1

我有一個程序將數據加載到DataGridView中,用戶可以在其中編輯/添加/刪除數據。當他們關閉表單時,如果有任何更改,它會詢問用戶是否要將更改保存到數據庫。DataGridView檢測到更改無法按預期方式工作

所以我有一個DataTable,我加載並分配給DataGridView的DataSource。然後我可以更改表中的數據,如果我調用DataSet.Update方法,它會更新。但是,如果我調用DataTable.GetChanges方法並查看更改,我什麼也沒得到,除非我有選項卡/單擊/關於DataGridView的當前行(在這種情況下.GetChanges工作)導致我相信這些更改不會提交給DataTable,除非該行失去焦點。

那麼,有沒有一種方法來檢查是否有任何單元格在DataGridView中更改,或者提交這些更改時沒有切斷行的方式?

再說一遍,如果我不更改GridView中的行,但會失敗,否則工作。我希望它能在兩種情況下都能正常工作。

Dim changedRows As New DataTable() 
    changedRows = dtInfo.GetChanges(DataRowState.Modified Or DataRowState.Added Or DataRowState.Deleted) 
    If Not changedRows Is Nothing Then 
    .... 
    End If 
+1

你確定你不想要「或」而不是「和」嗎? –

+0

是的,我這樣做,我改變了希望它可能有影響,但是當我複製代碼時沒有改變。與Ors相同的結果。更新的問題.. – APrough

回答

1

可以調用Form.ValidateChildren方法,這將驗證並提交表單中的所有控件,包括你的DataGridView。如果存在驗證錯誤,則此方法返回false。

+0

謝謝你。像魅力一樣工作 – APrough

相關問題