【问题标题】:How can I remove dataset relation?如何删除数据集关系?
【发布时间】:2011-07-26 10:05:30
【问题描述】:

我该怎么做?我已经尝试过 DataSet.Relations.Clear(),但它不起作用。有什么想法吗?

【问题讨论】:

    标签: c# dataset database-relations


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      这对我有用:

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

      按照这个 sn-p 来删除任何可能阻止从数据集中删除表的外键约束:

      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]);
      }
      

      【讨论】:

        猜你喜欢
        • 2013-03-27
        • 1970-01-01
        • 2013-01-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多