как исправить эту ошибку: в DotTeach.exe произошло необработанное исключение типа «System.NullReferenceException»

Дополнительная информация: Ссылка на объект не указывает на экземпляр объекта.

у меня есть этот код

DotTeachDataSet ds;
DotTeachDataSetTableAdapters.QuestionsTableAdapter ta;

private void button1_Click(object sender, RoutedEventArgs e)
{                                         
    ta.CreateQuestion(discussionQuestion.Text, webPage.Text, choiceA.Text, choiceB.Text, choiceC.Text, choiceD.Text, hint.Text, rightAnswerCbox.Uid);
    ta.Fill(ds.Questions);
}

Это я использую, чтобы попытаться получить значения из текстовых полей в xaml и отправить их в базу данных, но я продолжаю получать сообщение об ошибке:

В DotTeach.exe возникло необработанное исключение типа «System.NullReferenceException».

Дополнительная информация: Ссылка на объект не указывает на экземпляр объекта.

а визуальная студия выделяет линию

ta.CreateQuestion(discussionQuestion.Text, webPage.Text, choiceA.Text, choiceB.Text, choiceC.Text, choiceD.Text, hint.Text, rightAnswerCbox.Uid);

У кого-нибудь есть идеи, что я мог бы попробовать?

Я избавился от сообщения об ошибке, но он все еще не делает то, что мне нужно. Я пытаюсь заставить его добавлять данные в базу данных при нажатии кнопки. Вот функция, которую я использую, которая не работает

private void button1_Click(object sender, RoutedEventArgs e)
    {
        DotTeach.DotTeachDataSet dotTeachDataSet = ((DotTeach.DotTeachDataSet)(this.FindResource("dotTeachDataSet")));
        DotTeach.DotTeachDataSetTableAdapters.QuestionsTableAdapter dotTeachDataSetQuestionsTableAdapter = new DotTeach.DotTeachDataSetTableAdapters.QuestionsTableAdapter();


        //ADD THE QUESTION TO THE DATA BASE
        dotTeachDataSetQuestionsTableAdapter.CreateQuestion(discussionQuestion.Text, webPage.Text, choiceA.Text, choiceB.Text, choiceC.Text, choiceD.Text, hint.Text, rightAnswer.Text);
    }

Я даже не уверен, что еще попробовать.


person Mike    schedule 25.02.2011    source источник


Ответы (2)


Ну, чтобы получить NullReferenceException, один из следующего имеет значение null:

  • ta
  • обсуждениеВопрос
  • веб-страница
  • выборА
  • выборB
  • выборC
  • выборD
  • намекать
  • правоОтветCbox

Моя предполагаемая будет ta, но вы сможете узнать это либо с помощью журнала, либо в отладчике. Что означает присвоение ненулевого значения ta?

Это всегда дает сбой (в этом случае его будет легко диагностировать) или только иногда?

person Jon Skeet    schedule 25.02.2011
comment
Я отредактировал свой вопрос, если вы не против взглянуть, я был бы признателен. Спасибо. - person Mike; 28.02.2011
comment
@Mike: Хорошо, это доказывает, что ta не является нулевым. Есть много других вариантов, перечисленных выше. Если вы поставите точку останова в этой строке, проверьте все переменные в моем списке. Какой из них нулевой? - person Jon Skeet; 28.02.2011

Когда VS выделяет строку в отладке, почему бы не попробовать навести указатель мыши на каждый из элементов, упомянутых Джоном, и посмотреть, что сообщает информация об отладке. Определите, какие элементы являются нулевыми, а затем исследуйте, почему это значение равно нулю. ( Должна быть причина ! )

person Bhaskar    schedule 25.02.2011