更新条目时发生错误。 有关详细信息,请参阅内部exception

当我删除列表框中的项目时,我收到问题中的错误,如下面的屏幕截图所示: 错误

我不知道内部exception在哪里,但我尝试尝试,捕获但我在问题中得到了相同的错误。

以下是所有代码:

namespace WpfApplication7 { ///  /// Interaction logic for Edit_Rooms.xaml ///  public partial class Edit_Rooms : Window { public Edit_Rooms() { InitializeComponent(); } //initialises entities WpfApplication7.AllensCroftEntities1 allensCroftEntities1 = new WpfApplication7.AllensCroftEntities1(); private Room ObjectIndex; private void Window_Loaded(object sender, RoutedEventArgs e) { // Load data into Rooms. System.Windows.Data.CollectionViewSource roomsViewSource = ((System.Windows.Data.CollectionViewSource)(this.FindResource("roomsViewSource"))); //runs a query to go the roomsQuery to get the rooms table from the entities System.Data.Objects.ObjectQuery roomsQuery = this.GetRoomsQuery(allensCroftEntities1); //used when adding new rooms roomsViewSource.Source = roomsQuery.Execute(System.Data.Objects.MergeOption.AppendOnly); } private System.Data.Objects.ObjectQuery GetRoomsQuery(AllensCroftEntities1 allensCroftEntities1) { System.Data.Objects.ObjectQuery roomsQuery = allensCroftEntities1.Rooms; // Returns an ObjectQuery. return roomsQuery; } private void btnDelete_Click(object sender, RoutedEventArgs e) { //prevents user trying to delete nothing/unselected row if (ObjectIndex == null) { MessageBox.Show("Cannot delete the blank entry"); } else { //deletes object from dataset, saves it and outputs a message allensCroftEntities1.DeleteObject(ObjectIndex); allensCroftEntities1.SaveChanges(); MessageBox.Show("Room Deleted"); } } private void btnSave_Click(object sender, RoutedEventArgs e) { try { //attempts to save changes allensCroftEntities1.SaveChanges(); MessageBox.Show("Saved"); } catch (Exception ex) { //if unsuccessful, outputs an error message MessageBox.Show(ex.ToString()); } } private void btnFirst_Click(object sender, RoutedEventArgs e) { listbox.SelectedIndex = 0; } private void btnPrevious_Click(object sender, RoutedEventArgs e) { //prevents user going to the previous item before the first item if (listbox.SelectedIndex > 0) { listbox.SelectedIndex -= 1; } } private void btnNext_Click(object sender, RoutedEventArgs e) { //prevents user going after last item and throwing up an error if (listbox.SelectedIndex < listbox.Items.Count) { listbox.SelectedIndex += 1; } } private void btnLast_Click(object sender, RoutedEventArgs e) { listbox.SelectedIndex = listbox.Items.Count - 1; } private void listbox_SelectionChanged(object sender, SelectionChangedEventArgs e) { //outputs index of the selected room ObjectIndex = listbox.SelectedItem as Room; } } } 

单击“查看详细信息…”将打开一个窗口,您可以在其中展开“内部exception”,我的猜测是,当您尝试删除记录时,存在引用约束违规。 内部exception将为您提供更多信息,以便您可以在删除记录之前修改代码以删除任何引用。

在此处输入图像描述

单击“查看详细信息”以查找内部exception。