日期:2014-05-20  浏览次数:20826 次

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

xsd中就一个表,数据源存储过程.

单独执行存储过程数据能正常显示

有人知道为什么?

vs2005 sql2005

------解决方案--------------------
是不是xsd里面的表结构里面有主键,唯一性或非NULL的限制
而存储过程返回的数据里面有NULL值,或者有重复数据,导入无法写入

建议检查下xsd文件各字段的设置。
------解决方案--------------------
应该是有重复的主键

------解决方案--------------------
如果想看看结果,填DATASET里不启动约束:
ds.EnforceConstraints = false; //数据集是否接受约束规则
------解决方案--------------------
可能你的报表用的是推(PUSH)模式的,用存储过程可能用拉模式的方法方便(如果用推模式,可能要转化才能生成强类型的dataset)
------解决方案--------------------
存储过程中,把最后要显示的查询语句SELECT 后面加一个distinct试试?

还不行,你把代码或伪码发出来,可能大家会有解决办法的

------解决方案--------------------
你看一下你的数据集table是不是设了主键,数据集设主键的值是不是有重复的了?