1

我怎样才能做到这一点?我已经尝试过 DataSet.Relations.Clear(),但它不起作用。有任何想法吗?

4

2 回答 2

0

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

于 2011-03-30T21:01:39.213 回答
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]);
}
于 2017-04-11T22:17:20.330 回答