2013-02-19 64 views
0

我有4個表abcd和我有,bccdab引用(通過外鍵)。 我正在使用網格視圖來加載此表。 如果我嘗試刪除的值具有基準那麼它給了我一個例外:刪除行與外鍵

 
The DELETE statement conflicted with the REFERENCE constraint 'FK__b__sc__0519C6AF'. The conflict occurred in database 'dbs', table 'dbo.b', column 'id'. 
The statement has been terminated. 

我不想刪除的值,如果沒有與其重要夥伴。 GridViewSim_RowDeleting()可以幫忙嗎?

我更新時遇到同樣的問題。我正在使用網格視圖提供的標準鏈接來更新和刪除。

任何幫助?

回答

0

您可以處理RowDeleted/RowUpdated事件中的執行,因此不會將其引發至應用程序。例如

void GridViewSim_RowDeleted(Object sender, GridViewDeletedEventArgs e) 
{ 
    if(e.Exception == null) 
    { 
     //Delete was successful - Do Something 
    } 
    else 
    { 
     // Delete was not successful - Do something else 
     e.ExceptionHandled = true; 
    } 
} 

你也可以做到這一點的RowDeleting事件正如你所說,但這需要自定義的驗證檢查,如果主鍵子表存在,它會更容易和更快,而在我看來沒有讓外鍵完成他們的工作並捕獲異常,而不是執行檢查來預先排除錯誤。