.NET - DataGridView - 用户添加行时更新到数据库

时间:2010-12-07 14:52:29

标签: c# database winforms datagridview row

嘿伙计们。我在使用datagridview为用户输入保存到数据库的数据时遇到问题。基本上,我只是希望他们把东西放到一行然后我的代码将插入数据。我知道我要尝试的事情必须有一些事件,我无法理解。

我尝试了LeavingRow事件,但问题是当此事件触发时最终值未更新。我的意思是,假设我们有一列有四列,并且用户已将数据输入前三列。他们在最后一列输入信息,然后按下以输入新行。插入失败,因为它认为最后一列仍然是空的。

我也尝试了UserAddsRow,但是失败了,因为一旦用户开始输入添加一行就会触发,所以我试图添加的行的第一列中只有一个字符。

有没有人建议让这些或其他活动为我的目的而工作?

我正在权衡的两个不优选的替代方案是:a)将一些标签/文本框和一个添加按钮串联在一起或b)使用DataGridCell_ValueChanged事件,通过一些嵌套的try / catch尝试先插入,然后如果失败尝试更新,如果更新不起作用,则不执行任何操作。这是非常低效的,但我认为它可以完成工作,因为在这个数据网格视图中一次只会有几十行顶部。

感谢您的时间。

1 个答案:

答案 0 :(得分:2)

我通常使用RowValidated事件。我使用此事件是因为它允许在尝试保存更改之前输入/编辑整行。

处理事件时,我获取已从数据集(DataSet.GetChanges)添加,更新或删除的行,然后按类型执行相应的操作(添加,更新,删除)。