2013-03-17 26 views
13

Khi tôi xóa một mục trong hộp danh sách, tôi nhận được lỗi trong câu hỏi như thể hiện trong hình dưới đây: errorĐã xảy ra lỗi khi cập nhật các mục nhập. Xem các ngoại lệ bên trong để biết chi tiết

Tôi không biết nơi mà các ngoại lệ bên trong, nhưng tôi đã cố gắng cố gắng, bắt nhưng tôi có cùng một lỗi trong câu hỏi.

Dưới đây là tất cả các mã:

namespace WpfApplication7 
{ 
/// <summary> 
/// Interaction logic for Edit_Rooms.xaml 
/// </summary> 
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<WpfApplication7.Room> roomsQuery = this.GetRoomsQuery(allensCroftEntities1); 
     //used when adding new rooms 
     roomsViewSource.Source = roomsQuery.Execute(System.Data.Objects.MergeOption.AppendOnly); 
    } 

    private System.Data.Objects.ObjectQuery<Room> GetRoomsQuery(AllensCroftEntities1 allensCroftEntities1) 
    { 
     System.Data.Objects.ObjectQuery<WpfApplication7.Room> 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; 
    } 
} 
} 

Trả lời

37

Nhấp vào "Xem chi tiết ..." một cửa sổ sẽ mở ra nơi bạn có thể mở rộng "Ngoại lệ bên trong" mà tôi đoán là khi bạn cố gắng xóa bản ghi có vi phạm ràng buộc tham chiếu. Ngoại lệ bên trong sẽ cung cấp cho bạn thêm thông tin về điều đó để bạn có thể sửa đổi mã của mình để xóa mọi tham chiếu trước khi xóa bản ghi.

enter image description here

7

Bấm "xem chi tiết" để tìm ngoại lệ bên trong.

Các vấn đề liên quan