如何在c#中的约束违例异常中获取列名

时间:2017-08-17 13:43:33

标签: c# sql-server constraints

我对货币领域有约束,负值是不可接受的。约束条件一切正常,如果违反约束条件,我会收到错误。

  

无法更新行。原因:UPDATE语句与CHECK约束冲突" CK_Product_StandardCost"。冲突发生在数据库" AdventureWorksLT",table" SalesLT.Product",column' StandardCost'中。   声明已经终止。

我在catch块中收到此错误,因为我正在更新表中的错误数据。

Docs

我想要的是获取特定于此约束的列名称。这将是: StandardCost 。有什么方法可以在我的C#代码中找到列名吗?

1 个答案:

答案 0 :(得分:1)

异常消息中包含Substring的简单IndexOf

var message = ex.Message;
var column = message.Substring(message.IndexOf("column '") + 8, message.IndexOf("'", message.IndexOf("column '") + 9) - message.IndexOf("column '") - 8);