2013-03-17 11 views
13

için iç özel duruma bakın, aşağıdaki ekran görüntüsünde görüldüğü gibi ben söz konusu hatayı alıyorum: iç istisna olduğu errorGirişleri güncellerken bir hata oluştu. Ben bir liste kutusunda bir öğeyi sildiğinizde ayrıntılar

Bilmiyorum, ama ben denedim dene, yakala ama soruda aynı hatayı aldım.

İşte bütün kod geçerli:

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; 
    } 
} 
} 

cevap

37

"Ayrıntıyı Görüntüle ..." yi tıklayın. "İç Özel Durum" u genişletebileceğiniz bir pencere açılacaktır, tahminim kayıt silmeye çalıştığınızda bir referans kısıtlaması ihlali olduğunu gösterir. İç istisna size daha fazla bilgi verecektir, böylece kaydı silmeden önce herhangi bir referansı kaldırmak için kodunuzu değiştirebilirsiniz.

enter image description here

7

tıklayın "görünümü ayrıntıları" iç özel bulmak için.

İlgili konular