您的位置:首页 > 其它

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

2014-04-29 16:56 288 查看

一、问题描述

在C#程序中定义了一个数据集ada,然后拉进了一张表INVOICE,需要对该表进行查询方法GetText(fph)的配置。 配置时的语句为:

SELECT INVNAME FROM SCOTT.INVOICE WHERE (INVNO = :INVNO);

编译通过,运行时弹出“未能启用约束。一行或多行中包含违反非空、唯一或外键约束的值。”错误。

二、原因分析

该查询方法返回的是记录集,如果没有主键的话,INVNAME 可能有重复,就会导致上面的错误,所以需要包含主键。

三、解决方案

将主键也包含进select语句中:

SELECT INVNO,INVNAME FROM SCOTT.INVOICE WHERE (INVNO = :INVNO);

如果嫌麻烦,可以直接SELECT * FROM SCOTT.INVOICE WHERE (INVNO = :INVNO);然后用列名获取特定列的字段即可:

ada.GetText(fph).Rows[0]["invtype"].ToString();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐