返回异常“无法启用约束”的C# DataAdapter

目录

1. 问题

2. 解决方案

2.1. 定位方法本身

2.2. 为生成的代码启用调试

2.3. 将try-catch添加到生成的代码中

2.4. 调试并查看错误信息

3. 将生成的代码恢复到正常状态


1. 问题

在一个应用程序的工作中,使用C# ADO.NET DataAdapter技术访问SqlServer数据库,我开始收到一个异常,其中包含一条非常广泛的消息:无法启用约束。一行或多行包含违反非空值、唯一值或外键约束的值。使用Exception StackTrace,很容易找到该异常的来源。

 

它是FillByFilename()方法的DataAdapter调用。但是,问题是信息很广泛,我没有看到哪些约束失败了。所以,我需要更多信息。不幸的是,库创建者未能在Exception自身中提供更多信息,因此需要进行更多的调试。

2. 解决方案

2.1. 定位方法本身

第一步是找到该方法的源代码(在设计器自动生成的文件中)。

 

2.2. 为生成的代码启用调试

Visual Studio选项中,仅禁用代码的调试:

 

2.3. try-catch添加到生成的代码中

try-catch代码和调用GetErrors()方法添加到自动生成的DataAdaptercatch代码。在语句上设置断点。

 

2.4. 调试并查看错误信息

启动调试会话并在调试器中签入GetErrors()方法的结果。您将确切地看到哪个约束失败了。

 

 

3. 将生成的代码恢复到正常状态

不要忘记将自动生成的代码恢复到正常状态。因为您现在正在使用你的catch语句抑制异常,所以只需在设计器中更改某些内容,DataAdapter代码将再次自动生成,并且您的调试更改将被覆盖。

https://www.codeproject.com/Tips/5337324/Csharp-DataAdapter-returning-Exception-Failed-to-e

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值