主键错误的陷阱

时间:2009-10-26 10:04:33

标签: c# error-handling primary-key

我想将sql-2000主键错误捕获到c#中并开发我自己的错误 “这是重复的发票编号”

请在c#应用程序中回复如何执行此操作。

感谢名单。

2 个答案:

答案 0 :(得分:1)

通常,这不被认为是好的设计。您应该在插入之前检查重复的密钥,并且仅将DB约束作为“安全网”。

但是如果你想这样做,你需要捕获异常SQLException。然后你需要使用SQLException的属性(特别是ErrorCode和Number)来检查它是否是PK违规。

但是通常检查SQLException的确切原因很棘手并且取决于所使用的DBMS,所以它不是一个好的和强大的方法。这就是为什么不推荐它的原因之一(见上文)。

答案 1 :(得分:-1)

如果您希望将其作为例外处理,则应该在插入之前检查特定ID是否存在。