Невозможно получить доступ к удаленному объекту, но программа работает - PullRequest
0 голосов
/ 27 апреля 2020

В проекте WPF каждый раз, когда я пытаюсь добавить выбранного студента в выбранный университет и отображать его в соответствующей таблице. Вот изображение моей таблицы - https://i.stack.imgur.com/KUHuF.png Я сталкиваюсь с этой проблемой, как только я нажимаю кнопку обновления, связанную с обновлением.

public System.Data.Linq.Table<Student> Students
    {
        get
        {
            return this.GetTable<Student>();
        }
    }

Код выше находится в окне "Dataclasses1.designer.cs" , Однако после перезапуска программы выбранный студент успешно добавляется в выбранный университет. Вот мой код -

 private void UpdateAssociatedStudent_Click(object sender, RoutedEventArgs e)
    {
        if(ListUniversity.SelectedItem != null || ListStudent.SelectedItem != null)
        {
            using (dataContext = new DataClasses1DataContext())
            {
                UniversityManager universityManager = new UniversityManager
                {
                    UniFK = int.Parse(ListUniversity.SelectedValue.ToString()),
                    StdFK = int.Parse(ListStudent.SelectedValue.ToString())
                };
                dataContext.UniversityManagers.InsertOnSubmit(universityManager);
                dataContext.SubmitChanges();
            }
            ShowAssociatedStudents();
            Sucess.Text = "Student is sucessfully added to University";
        }
    }

Правка - Добавление изображения для ошибки https://i.stack.imgur.com/ApPxd.png

Ответы [ 2 ]

0 голосов
/ 30 апреля 2020

Я решил эту проблему, запустив try / catch вместо использования оператора «Using». мой отредактированный код выглядит следующим образом.

 //Add selected student from selected university in associated student listbox
    private void UpdateAssociatedStudent_Click(object sender, RoutedEventArgs e)
    {
        if(ListUniversity.SelectedItem != null && ListStudent.SelectedItem != null)
        {
            try
            {
                uniManager = new UniversityManager()
                {
                    UniFK = Convert.ToInt32(ListUniversity.SelectedValue),
                    StdFK = Convert.ToInt32(ListStudent.SelectedValue)
                    //UniFK = int.Parse(ListUniversity.SelectedItem.ToString()),
                    //StdFK = int.Parse(ListStudent.SelectedItem.ToString())
                };
                dataContext.UniversityManagers.InsertOnSubmit(uniManager);
                dataContext.SubmitChanges();
                ShowAssociatedStudents();
            }
            catch (FileNotFoundException)
            {
                Console.WriteLine("File Not Found.");
            }
            catch (OutOfMemoryException)
            {
                Console.WriteLine("Out of Memory.");
            }
            catch (IOException)
            {
                Console.WriteLine("An I/O error has occured.");
            }
        }
        else
        {
            Failed.Text = "Please select the missing items from either university or student.";
        }
    }
0 голосов
/ 28 апреля 2020

Я думаю, что вам может потребоваться изменить эту строку кода:

if(ListUniversity.SelectedItem != null || ListStudent.SelectedItem != null)

на

if(ListUniversity.SelectedItem != null && ListStudent.SelectedItem != null)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...