为什么在填充数据表时获取ForeignKeyConstraint并且dataset.EnforceConstraints设置为false?

时间:2014-04-14 15:13:12

标签: c# .net ado.net

我正在尝试使用dataAdapter.Fill(dataTable)从数据库加载数据集,并且我已经关闭了DataSet中的约束,但我仍然会抛出异常。 enter image description here

1 个答案:

答案 0 :(得分:0)

啊哈哈。 加载数据后,数据适配器启用了约束。

我必须说这是一个痛苦,因为我关闭了约束,所以我不必按顺序加载每个表。我是否倾向于使用DataReader来避免在每个表填充后启用约束?

无法启用约束。一行或多行包含违反非null,唯一或外键约束的值。 System.Data.DataSet.EnableConstraints()的    at System.Data.DataSet.set_EnforceConstraints(布尔值)    在System.Data.DataTable.EndLoadData()    在System.Data.Common.DataAdapter.FillFromReader(DataSet数据集,DataTable datatable,String srcTable,DataReaderContainer dataReader,Int32 startRecord,Int32 maxRecords,DataColumn parentChapterColumn,Object parentChapterValue)    在System.Data.Common.DataAdapter.Fill(DataTable [] dataTables,IDataReader dataReader,Int32 startRecord,Int32 maxRecords)    在System.Data.Common.DbDataAdapter.FillInternal(DataSet数据集,DataTable [] datatables,Int32 startRecord,Int32 maxRecords,String srcTable,IDbCommand命令,CommandBehavior行为)    在System.Data.Common.DbDataAdapter.Fill(DataTable [] dataTables,Int32 startRecord,Int32 maxRecords,IDbCommand命令,CommandBehavior行为)    在System.Data.Common.DbDataAdapter.Fill(DataTable dataTable)