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

C# 将包含多个相关表的数据集写入XML文件时出错,并且未强制执行约束,c#,dataset,relationship,C#,Dataset,Relationship,有人知道如何从具有多个父行的多个表的数据集中编写XML吗 情景: 我有五个子表关系,这使得父表上有5个外键;这个父表有它自己的父表。 所有表都包含数据,我想将其导出到XML文件中 为此,我使用的代码是: DataSet dataSet = dataSource as DataSet; SaveFileDialog dialog = new SaveFileDialog(); dialog.FileName = dataSet.DataSetName; dialog.Filter = "XML

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

情景: 我有五个子表关系,这使得父表上有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行时,我都会收到以下错误消息:

无法继续序列化数据表“Table_Name”。它包含一个
在同一外键上有多个父行的DataRow。

有没有关于为什么会发生这种情况以及如何解决的想法


提前感谢。

为什么要将EnforceConstraints设置为false?您是否检查了关系设置是否正确?

为什么将EnforceConstraints设置为false?您是否检查了关系设置是否正确?

删除表中的数据并插入新数据后,问题得到解决。由于数据库没有约束,且约束基于数据集的FK关系,因此如果该约束失败,则为

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


谢谢各位,你们的回答引导我完成。

删除表中的数据并插入新数据后,问题得到解决。由于数据库没有约束,且约束基于数据集的FK关系,因此如果该约束失败,则为

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


谢谢各位,你们的回答引导我走完全程。

关系是正确的。我在问这个问题之前已经仔细检查过了。由于异常仅在序列化时发生,因此在执行序列化时可以尝试关闭常量。我将在执行序列化之前使用DataSet.EnforceConstraints=false,并在序列化之后将其设置为true。关系是正确的。我在问这个问题之前已经仔细检查过了。由于异常仅在序列化时发生,因此在执行序列化时可以尝试关闭常量。我将在执行序列化之前使用DataSet.EnforceConstraints=false,并在序列化之后将其设置为true。是否使用DataSet作为创建数据源的基础?这是否建立了关系?这个应用程序需要它们吗?是的,它被用作数据源。它设置了几个关系。您是否使用数据集作为创建数据源的基础?这是否建立了关系?这个应用程序需要它们吗?是的,它被用作数据源。它建立了几个关系。