2013-10-26 83 views
1

我有一個程序,我寫數據到datagridviews,當我關閉表單數據保存到SQL Server數據庫。但是我有一個問題,當它有子行時刪除父行。我正在收到併發衝突異常。當我檢查數據庫時,我只看到子行被刪除。C#SQL行刪除父行與子行

這裏是我創建SQL Server表查詢:

sql = "CREATE TABLE Auto(" 
         + "VIN varchar(10) NOT NULL PRIMARY KEY," 
         + "Make nvarchar(50)," 
         + "Model nvarchar(50)," 
         + "Year smallint);"; 

sql = "CREATE TABLE Repair(" 
         + "ID int NOT NULL PRIMARY KEY," 
         + "VIN varchar(10) NOT NULL," 
         + "Description nvarchar(255)," 
         + "Cost float)" 
         + "ALTER TABLE Repair ADD FOREIGN KEY (VIN) REFERENCES Auto(VIN) ON DELETE CASCADE;"; 

我通過SqlDataAdapter更新數據庫。

回答

0

我不知道爲什麼你使用ALTER TABLE嘗試這樣的事情能正常工作對我來說:

CREATE TABLE Auto(
VIN varchar(10) NOT NULL PRIMARY KEY, 
Make nvarchar(50), 
Model nvarchar(50), 
Year smallint 
); 

CREATE TABLE Repair(
ID int NOT NULL PRIMARY KEY, 
VIN varchar(10) NOT NULL, 
Description nvarchar(255), 
Cost float, 
FOREIGN KEY (VIN) REFERENCES Auto(VIN) ON DELETE CASCADE) 
); 

刪除例子:

DELETE FROM Auto WHERE VIN = 'BMW'; 
0

它的工作對我來說,這裏是小提琴

SQL fiddle

您是否有觸發機會?