3
我正在製作一個基於Access數據庫的WPF項目。 數據庫有兩個表:C#WPF:刪除具有外鍵約束(Access數據庫)的記錄
- 電影(MovieID:PK,片名,導演等)
- 演員(actorId來:PK,MovieID:FK,名字,姓氏等)
問題是如果我想刪除一部電影,如果仍有 演員附加到電影中,則會出現錯誤。
我刪除電影代碼:
public static void DeleteMovie(Movie mov)
{
string commandString = string.Format("DELETE FROM tblMovies WHERE MovieID = {0}", mov.MovieID);
OleDbConnection conn = new OleDbConnection(connectionString);
OleDbCommand command = new OleDbCommand();
OleDbDataAdapter adapter = new OleDbDataAdapter();
conn.Open();
command.Connection = conn;
command.CommandText = commandString;
adapter.DeleteCommand = command;
adapter.DeleteCommand.ExecuteNonQuery();
conn.Close();
}
作爲一個臨時的解決方案,我補充說,對於確認詢問演員們從電影中刪除一個消息。但是,如果他們不和你單擊是,出現這種情況:
Movie mov = (Movie)listBoxMovies.SelectedItem;
MovieRepository.DeleteMovie(mov);
MessageBox.Show("The movie: '" + mov.Title + " 'has been deleted.");
我得到了我想要刪除的電影具有相同MovieID演員錯誤:
類型的未處理的異常System.Data.dll中發生System.Data.OleDb.OleDbException 附加信息:由於表'tblActors'包含相關記錄,因此無法刪除或更改記錄。
我該如何做到這一點,如果我點擊「刪除電影」按鈕,電影和各自的演員都被刪除?
非常感謝,我改變了在Access中的關係,它的工作原理。 我試圖添加刪除演員查詢刪除電影查詢,但只有第二個正在執行(演員被刪除)。 謝謝! – Jasper