我正在使用带有 LINQ2SQL 的 XtraGrid 作为数据源,但遇到了一些问题。
有时在数据库中发布更改时会发生数据验证错误(例如,在唯一索引违规或触发错误或 FK 不存在或您尝试删除某人的父级等情况下)。在这种情况下,我需要通知用户并让他能够更正数据或恢复行。
不幸的是,我无法找到放置代码并使其成为可能的最佳位置。在GridView.ValidateRow
事件主体内部,尚未更改任何基础数据(dataContext.SubmitChanges()
调用不会引起任何更改)。
该GridView.RowUpdated
事件看起来是保存对 DB 的更改的好地方,但我无法保持错误行的焦点(如果用户通过将焦点移动到另一行来导致行更新,那么在此事件处理程序完成后焦点将消失)。
在 GridView 中插入/更新/删除操作时处理数据库错误的常见解决方案是什么?