将包含多个关联表的数据集写入XML文件时出错,且未强制执行约束



是否有人知道如何从具有多个父行的多个表的数据集编写XML ?

场景:我有5个子关系到一个表,这使父表上有5个外键;这个父表有自己的父表。所有表都包含数据,我想将其导出为XML文件。

为了做到这一点,我使用的代码是:
DataSet dataSet = dataSource as DataSet;
SaveFileDialog dialog = new SaveFileDialog();
dialog.FileName = dataSet.DataSetName;
dialog.Filter = "XML files (*.xml) | *.xml";
if (dialog.ShowDialog() == DialogResult.OK)
{
    dataSet.EnforceConstraints = false;
    dataSet.WriteXml(dialog.FileName, XmlWriteMode.WriteSchema);
}

每次我调试并点击dataSet.WriteXml行,我得到这个错误消息:

Cannot proceed with serializing DataTable 'Table_Name'. It contains a DataRow which has multiple parent rows on the same Foreign Key.

对于为什么会发生这种情况以及如何解决它有什么想法吗?

为什么将enforcecconstraints设置为false?

删除表中的数据并插入新数据后问题解决。由于数据库没有约束,并且约束是在数据集的FK关系上,所以它失败了。

正确的解决方案是在数据库中设置FK约束,而不是单独在数据集中执行。

谢谢大家,你们的回答指引了我。

最新更新