您的位置:首页 > 数据库

未能启用约束。一行或多行中包含违反非空、唯一或外键约束的值。

2015-08-13 15:52 645 查看
今天遇到个奇怪的问题,在取数据生成orm对象时报错,内容是:未能启用约束。一行或多行中包含违反非空、唯一或外键约束的值。

一开始按照字面意思,以为是查询到的数据中非空字段中存在空值,或者主键重复等问题,但是找了半天也没有,然后在网上搜索了下这个问题,有人给出的结论是:强类型的DataTable和SQL语句查询出的结果不匹配。 简单说就是强类型的DataTable比SQL语句查询出来的结果集要多一些数据列或这属性不对应。

然后我仔细比较了所有字段(我这表有60多个字段....)发现字段数量也没有问题,又查了下,网上说有可能是属性问题,字段的数据长度的问题,于是一段一段的排查,终于找到出问题的列,这个列数据库中长度是50,在orm对象xml文件中只标了30,因为这个字段之前数据库中没有存储过超过30的字符串,所以一直也没问题,但是最近存储了超过30的字符串,所以报错了。

结论:未能启用约束。一行或多行中包含违反非空、唯一或外键约束的值。
这个报错有可能是数据长度的问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息