如何删除数据集关系?

时间:2011-03-30 20:51:20

标签: c# dataset database-relations

我该怎么做?我尝试过DataSet.Relations.Clear(),但它不起作用。任何想法?

2 个答案:

答案 0 :(得分:0)

我只是从数据库设计角度回答。听起来你的模型有一个外键约束,可以防止在有父项时删除父记录。根据您使用的工具和您拥有的权限(以及您希望影响数据模型完整性的程度),您可以删除此约束。这会在子表中留下孤立数据。您也可以在父进程上编写删除触发器,然后首先删除所有子进程。或者,您可以构建代码以查找子代,先删除它们然后删除父代。

答案 1 :(得分:0)

这对我有用:

for (int i = DS.Relations.Count - 1; i >= 0; i--)
  DS.Relations.Remove(DS.Relations[i]);

使用此代码段来删除任何可能阻止从数据集中删除表的外键约束:

for (int i = DS.Tables.Count - 1; i >= 0; i--)
{
  var table = DS.Tables[i];
  for (int constraint = table.Constraints.Count - 1; constraint >= 0; constraint--)
    if (table.Constraints.CanRemove(table.Constraints[constraint]))
      table.Constraints.Remove(table.Constraints[constraint]);
}