【问题标题】:Linq to sql unhandled exception from update stored procedure来自更新存储过程的 Linq to sql 未处理异常
【发布时间】: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


【解决方案1】:

感谢您的回复。你是对的,我的问题是,在第二种情况下的异常没有被捕获,即使它与第一种情况下的错误完全相同。

与此同时,我解决了我的问题。我所要做的就是勾选“不要打破这种类型的例外”。现在异常已经很好地传递到 UI,我可以处理它了。

不过,我还是不明白为什么。但是,嘿,它已经解决了,所以我不应该抱怨。

【讨论】:

    猜你喜欢
    • 2014-04-03
    • 2021-11-22
    • 1970-01-01
    • 2012-03-05
    • 2014-10-30
    • 2010-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多