【发布时间】:2019-10-04 11:24:13
【问题描述】:
我有一个简单的 Linq dbml 类,包含 1 个表。首先,我将其配置为“使用运行时”来进行更新。通过 UI,我故意将列更新为错误的值。然后调用 dataContext.SubmitChanges 会引发一个错误,该错误被捕获在 catch=block 中,显示一个 MessageBox“UPDATE 语句与 CHECK 约束冲突......”,正如它应该的那样。所以,一切都很好。
然后我将更新行为更改为“自定义”并使用一个简单的更新存储过程(只需 1 个简单的更新语句)。通过 UI 更新正确的值就像一个魅力。调用更新存储过程,一切都很好。但是当通过 UI 输入这个错误的值,然后按更新时,我在这行代码(Linq 类的内部代码)上得到一个未处理的异常:
IExecuteResult 结果 = this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())), field1, field2, ...);
标题:异常用户未处理的 System.Data.SqlClient.SqlException: 'UPDATE 语句与 CHECK 约束冲突 “CK_tblRitCentraal”。数据库“RCS”表中发生冲突 “dbo.tblRitCentraal”,列“RitOpmerkingen”。
语句已终止。'
非常感谢任何帮助!
【问题讨论】:
-
请编辑您的问题并添加一些代码。这很难理解。你的问题是第二种情况的异常没有被捕获吗?
标签: c# linq stored-procedures unhandled