2011-10-26 15 views
1

使用Winforms,vs2008。Datagridview將行直接編輯到數據庫

我有一個datagridview綁定到一個綁定到一個數據集與數據表連接。

我想能夠編輯datagridview中的一行,當該行的編輯完成時,我想通過存儲過程將數據立即寫入數據庫表。 (注意這是我必須通過調用存儲過程來完成的方式)。

我的問題是當用戶完成編輯行中的一個或多個單元格時發現可靠觸發的事件,因爲它們需要。

行從不添加在此網格中,它們只是對現有行進行編輯或刪除行。

我可以通過監控datagridview.rowleave事件或 來編寫我可以使用綁定源PositionChanged或當前項目更改的事件。

問題是,所有這些事件只有在離開正在編輯的當前行時纔會觸發。 當網格上只有一行數據或編輯網格最後一行時,這是一個很大的問題。這些事件中沒有一個會被解僱,直到你離開該行。

我該怎麼辦? 我如何處理網格上的單行或編輯最後一行或刪除一行。

任何意見讚賞。

謝謝

回答

1

當您考慮準備保存行時,您不會100%清楚。你說這是一個問題,當你離開當前行時,你只能得到某些事件,但我不知道什麼時候可以考慮一行來完成編輯?

這就是說,我會看到的兩個事件是DataGridView RowValidated事件和CellEndEdit事件。

RowValidated在對行更改進行驗證時觸發 - 通常當行被保留但與像BindingSource PositionChanged這樣的事件不同時,即使網格失去焦點時也會觸發此事件。 (也有DataGridView離開事件,但可能不太正確)。

如果您想要在一行內的數據發生更改時提交,那麼CellEndEdit事件可能是最好的。

+0

這是一個很好的問題,當一行準備好被保存時,除了一行離開行之外。不是我想問自己的問題 – Spooky2010

相關問題