2011-03-30 119 views

回答

0

我只是從數據庫設計的角度回答。這聽起來像你的模型有一個外鍵約束,防止當它有子級時刪除父記錄。根據您使用的工具和您擁有的權限(以及您希望影響數據模型完整性的程度),您可能可以刪除此限制。這會在子表中留下孤立的數據。您也可以在父母上寫入刪除觸發器,並首先刪除所有孩子。或者,您可以構建代碼以查找子項,首先將其刪除,然後刪除父項。

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