我该如何修复此错误:DotTeach.exe中出现未处理的“System.NullReferenceException”类型异常

时间:2011-02-25 17:54:06

标签: c# visual-studio-2010 oracle-sqldeveloper

附加信息:未将对象引用设置为对象的实例。

我有这段代码

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中的文本框中获取值并将它们发送到数据库,但我一直收到错误:

  

未处理的类型异常   'System.NullReferenceException'   发生在DotTeach.exe

     

其他信息:对象   引用未设置为的实例   对象

和visual studio突出了这一行

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

我甚至不确定还有什么可以尝试。

2 个答案:

答案 0 :(得分:7)

好吧,要获得NullReferenceException以下的一个为空:

  • TA
  • discussionQuestion
  • 网页
  • choiceA
  • choiceB
  • choiceC
  • choiceD
  • 提示
  • rightAnswerCbox

我的猜测将是ta,但您应该能够通过日志记录或在调试器中找到它。什么意味着为ta分配非空值?

总是失败(在这种情况下,它很容易诊断)或仅有时?

答案 1 :(得分:1)

当VS在调试时突出显示该行时,为什么不尝试将鼠标放在Jon提到的每个项目上,看看调试信息告诉我们哪些项目是否为null然后调查为什么那样null。(必须有原因!)