Datagridview将行编辑直接写入数据库

时间:2011-10-26 03:30:59

标签: datagridview row edit

使用Winforms,vs2008。

我有一个datagridview绑定到附加到带数据表的数据集的bindingsouorce。

我希望能够在datagridview中编辑一行,当该行的编辑完成后,我想通过存储过程立即将数据写入数据库表。 (注意这是我必须通过调用存储过程的方式)。

我的问题是找到一个事件,当用户根据需要完成编辑行中的一个或多个单元格时,可以触发该事件。

永远不会在此网格中添加行,它们只会对现有行进行编辑或删除行。

我可以通过监视datagridview.rowleave事件来编写 我可以使用绑定源PositionChanged或当前项目更改事件。

问题是所有这些事件只有在离开正在编辑的当前行时才会触发。 当网格上只有一行数据或编辑网格的最后一行时,这是一个大问题。没有其中一个事件会被解雇,直到你离开这一行。

我该怎么办? 如何处理网格上的单行或编辑最后一行或删除一行。

任何建议表示赞赏。

感谢

1 个答案:

答案 0 :(得分:1)

当您考虑准备保存行时,不要100%清除它。你说这是一个问题,当你离开当前行时你只会触发某些事件,但我不确定你还能在什么时候考虑完成编辑?

那就是说,我要看的两个事件是DataGridView RowValidated事件和CellEndEdit事件。

当对行的更改进行验证时会触发RowValidated - 通常在行离开时但不像BindingSource之类的某些事件PositionChanged,即使网格失去焦点,此事件也会触发。 (还有DataGridView Leave事件,但这可能不太正确。)

如果要在行中的数据发生更改时提交,则CellEndEdit事件可能是最佳的。