C# 具有唯一约束的FbDataReader问题
我正在将C# 具有唯一约束的FbDataReader问题,c#,datatable,firebird,unique-constraint,firebird2.5,C#,Datatable,Firebird,Unique Constraint,Firebird2.5,我正在将FbDataReader加载到包含以下类型唯一约束(完整表DDL)的表的DataTable中 我想要的是能够为相同的STRING\u KEY设置多个条目,前提是它们具有不同的INT\u KEY。请注意,我可以将INT\u KEY作为NULL记录,但如果是这样,则(STRING\u KEY,NULL)记录也应该是唯一的 此外,我在INT\u key上有一个外键 现在,当我加载我的FbDataReader时,如下所示: FbDataReader reader = command.Execut
FbDataReader
加载到包含以下类型唯一约束(完整表DDL)的表的DataTable中
我想要的是能够为相同的STRING\u KEY
设置多个条目,前提是它们具有不同的INT\u KEY
。请注意,我可以将INT\u KEY
作为NULL
记录,但如果是这样,则(STRING\u KEY,NULL)
记录也应该是唯一的
此外,我在INT\u key
上有一个外键
现在,当我加载我的FbDataReader
时,如下所示:
FbDataReader reader = command.ExecuteReader();
DataTable dataTable = new DataTable();
dataTable.Load(reader);
我得到一个错误:
未能启用约束。一个或多个行包含违反非空、唯一或外键约束的值
因此,我开始测试:
1.移除上述唯一约束后,负载即可工作
2.仅使用STRING_键
的唯一约束有效,即我绝对没有违反记录:单个键是唯一的,组合键也必须是唯一的-或者我误解了唯一约束的含义。
3.在INT\u键中设置所有NULL
值不会改变任何东西-加载数据表时会发生相同的错误
当然,我可以将数据加载到DataSource
中,并将EnforceConstraints
设置为false,这是有效的。但是,如果出现一个我不理解的错误,并通过忽略它来修复它,我会感到不舒服…您可以发布表格的整个定义吗?您可以发布表格的整个定义吗?
FbDataReader reader = command.ExecuteReader();
DataTable dataTable = new DataTable();
dataTable.Load(reader);