2013-02-14 41 views
0

您好,我有兩個表CustomerOrders
primary in Customer and Foreign key in Orders
我做了以下編碼:無法刪除與外鍵綁定的表相關的值

ForeignKeyConstraint custOrderFK = new ForeignKeyConstraint("CustOrderFK", 
    custDS.Tables["CustTable"].Columns["CustomerID"], 
    custDS.Tables["OrdersTable"].Columns["CustomerID"]); 
custOrderFK.DeleteRule = Rule.None; 

custDS.Tables["OrdersTable"].Constraints.Add(custOrderFK); 

既然我已經提到custOrderFK.DeleteRule = Rule.None;刪除客戶的表中的條目應該不會影響訂單的表。但是我無法從Customer表中刪除一行。它拋出異常。我是ado.net的新手。
我對規則的理解可能有些不對。

回答

0

使用外鍵刪除級聯選項。

+0

但我不想刪除第二個表中的值。這就是爲什麼我把它作爲無。這不可能嗎?你能解釋一下這個概念嗎? – 2013-02-14 09:19:31

+0

在delete set上使用null,所以無論何時刪除具有其他表上的外鍵的依賴關係的任何行,它將從主表中刪除時將value設置爲null。你可以改變桌子,讓它到位。 – 2013-02-14 10:17:06

+0

對不起!但我無法理解一件事。 Rule.SetNull是一個完全不同的值,它將null設置爲子項目。它在這裏如何混合? – 2013-02-15 03:25:12