Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在c中获取约束冲突异常中的列名#_C#_Sql Server_Constraints - Fatal编程技术网

C# 如何在c中获取约束冲突异常中的列名#

C# 如何在c中获取约束冲突异常中的列名#,c#,sql-server,constraints,C#,Sql Server,Constraints,我对货币字段有限制,负值是不可接受的。约束工作正常,当违反以下约束时,我会出错 无法更新行。原因:UPDATE语句与CHECK约束“CK\U Product\U StandardCost”冲突。冲突发生在数据库“AdventureWorksLT”、表“SalesLT.Product”、列“StandardCost”中。 声明已终止 我在catch块中遇到此错误,因为我正在更新表中的错误数据 我想要的是获取此约束激发的特定列的名称。这里应该是:标准成本。有什么方法可以在我的C#代码中找到列名吗?

我对货币字段有限制,负值是不可接受的。约束工作正常,当违反以下约束时,我会出错

无法更新行。原因:UPDATE语句与CHECK约束“CK\U Product\U StandardCost”冲突。冲突发生在数据库“AdventureWorksLT”、表“SalesLT.Product”、列“StandardCost”中。 声明已终止

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


我想要的是获取此约束激发的特定列的名称。这里应该是:标准成本。有什么方法可以在我的C#代码中找到列名吗?

一个简单的
子字符串
,在异常消息上有
索引

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

您需要解析异常message@Rahul-你的意思是我需要通过某种逻辑从异常消息中提取?是的,没错。。我的意思是,即使我从字符串中提取,它的最佳逻辑是什么?我可以考虑最后一个“”之间的子字符串文本(单引号对)。这是最好的解决方案吗?这很有效。但在异常堆栈中是否仍然可以获取列名?没有必要对信息进行这种操纵?据我所知,没有。SQL Server返回的错误包含该字符串,并且没有用于从中提取数据的内置API。