假设我有一个像
这样的异常消息Violation of UNIQUE KEY constraint 'UC_FileTypeName'. Cannot insert duplicate key in object 'dbo.FileUpload'.
是否有任何类方法或方法来获取名为“UC_FileTypeName”的约束?因为我要在数据库中查找这个约束名称并显示描述性消息。
我正在考虑阅读整个字符串并获取以'UC'开头并以'结尾的字符串。但我知道还有其他约束错误,如'FK_'等,所以它不是一个好主意。
答案 0 :(得分:1)
在任何情况下,都不要依赖于解析异常的Message属性。实际上,不要依赖于解析任何人类可读的输出。
它不打算被解析。它旨在被人类阅读。这些消息可以并且确实根据当前文化的变化而变化,并且可以随着语法错误的纠正而在发行版之间发生变化。
即使您有相同的“友好”消息,您是否真的认为您的用户可以理解类似“抱歉,您不能输入具有与现有行相同的A,B和C列的另一行” ?
您最好的选择是首先验证您的数据,而不是尝试输入违反任何限制的行。