在插入期间捕获c#中的sql唯一约束违规的最佳方式
发布时间:2020-12-15 06:56:46 所属栏目:百科 来源:网络整理
导读:我有一个c#中的循环插入到表中.漂亮的基本东西有没有什么insdie异常对象抛出一个唯一的约束被违反,我可以用来看看什么是违规的值? 还是有办法在sql中返回它?我有一系列文件,其数据加载到表格中,我正在绑定我的头试图找到这个dupe. 我知道我可以把一些纯粹
我有一个c#中的循环插入到表中.漂亮的基本东西有没有什么insdie异常对象抛出一个唯一的约束被违反,我可以用来看看什么是违规的值?
还是有办法在sql中返回它?我有一系列文件,其数据加载到表格中,我正在绑定我的头试图找到这个dupe. 我知道我可以把一些纯粹的基于IO的代码放在一起,可以找到它,但是我想要一些可以用作更永久的解决方案. 解决方法
您正在寻找的是SqlException,特别是违反主键约束.您可以通过查看抛出的异常的number属性来获取此异常的特定错误.这个答案可能与你需要的相关:
How to Identify the primary key duplication from a SQL Server 2008 error code? 总而言之,它看起来像这样: // put this block in your loop try { // do your insert } catch(SqlException ex) { // the exception alone won't tell you why it failed... if(ex.Number == 2627) // <-- but this will { //Violation of primary key. Handle Exception } } 编辑: 这可能有点麻烦,但您也可以检查异常的消息组件.这样的事情 if (ex.Message.Contains("UniqueConstraint")) // do stuff (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |