0

假设我有一个异常消息,例如

Violation of UNIQUE KEY constraint 'UC_FileTypeName'. Cannot insert duplicate key in object 'dbo.FileUpload'.  

是否有任何类方法或方法来获取名为 'UC_FileTypeName' 的约束?因为我要在我们的数据库中查找这个约束名称并显示描述性消息。

我正在考虑阅读整个字符串并获取以'UC'开头并以'结尾的字符串。但我知道还有其他约束错误,如“FK_”等,所以这不是一个好主意。

4

1 回答 1

1

在任何情况下都不要依赖解析异常的 Message 属性。事实上,永远不要依赖于解析任何人类可读的输出。

它不打算被解析。它旨在供人类阅读。此类消息可以并且确实会根据当前文化的变化而变化,并且可以随着语法错误的纠正而随着版本的变化而变化。

即使您有等效的“友好”消息,您是否真的认为您的用户可以理解诸如“抱歉,您不能输入具有与现有行相同的 A、B 和 C 列的另一行”之类的内容?

您最好的选择是首先验证您的数据,甚至不要尝试输入会违反任何约束的行。

于 2011-03-30T02:14:45.450 回答