采用DataTable填充DataGridView,报错;
错误为 : 未能启用约束。一行或多行中包含违反非空、唯一或外键约束的值。
报错语句为
select ... `加工单表`.processnumber 加工单号 from `出库表`,`加工单表`,`运单表` where ... AND `加工单表`.processnumber=`出库表`.pn AND ... order by ...
在数据命令界面直接调用存储过程可以正常运行,不会报错;查询结果保存到DataGridView报错,根据条件不同,偶尔会报错;
sql语句改为
select ... `出库表`.pn 加工单号 from `出库表`,`加工单表`,`运单表` where ... AND `加工单表`.processnumber=`出库表`.pn AND ... order by ...
查询结果保存到DataGridView不再报错, `出库表`.pn 和 `加工单表`.processnumber 的值是一样的;
结论:
`加工单表`.processnumber 在表中是主键,主键在联合查询中如果有多条结果,保存到DataTable中就会报错;
条件1,为主键;
条件2,多条查询结果
命令行执行不会报错.