【发布时间】:2024-04-28 12:35:02
【问题描述】:
我有一个数据网格视图,它数据绑定到实体框架“表”:
public ObjectSet<TEntity> tableData { get; private set; }
private BindingSource tableBinding;
public AuxiliaryTableEditor(ObjectSet<TEntity> something)
{
InitializeComponent();
this.tableData = something;
this.tableBinding = new BindingSource();
this.tableBinding.DataSource = tableData;
this.auxiliaryTableEditorGridView.DataSource = tableBinding;
}
这很好用。
问题是这样的:如果用户开始编辑/添加一行,如果他们在一个单元格中进入编辑模式,删除内容,然后 Tab 或点击它,一个 unhandled 异常将被抛出(因为大多数 db 列不允许空值)。这是完全正常且可以接受的,但我希望能够捕获和处理这些异常,并且我不知道在哪里/如何捕获它们。
我尝试在 datagridview 上使用几个不同的事件处理程序,例如.DataError、.RowValidating,以及一些我现在不记得的其他事件...但我似乎无法捕捉到讨厌的异常.
非常感谢任何建议!
编辑:我应该补充一点,异常通常是这样的:“用户代码未处理 ConstraintException。此属性不能设置为空值”。
【问题讨论】:
-
查看堆栈跟踪?
-
@Erix 堆栈跟踪是否与调用堆栈相同?因为调用堆栈并没有真正告诉我太多......只是出现未处理错误的行(在designer.cs文件中)
-
是的,有时它可以帮助您找到捕捉它的地方。但并非总是如此。
标签: c# entity-framework data-binding exception-handling datagridview