使用C#的ASP.NET中的NullReferenceException错误 - 尝试处理错误

时间:2009-05-14 15:06:26

标签: c# asp.net nullreferenceexception

我有一个ASP.NET webform,除了其他控件之外,还有一个用于输入值的文本框,一个用于显示值的文本框,一个dropdownlistbox和一个搜索按钮。我使用以下代码显示搜索结果:

if (TextBox3.text == DropDownList3.Items.FindByText(TextBox3.Text).Value) 
{
  etc... 
}

DDL3从DataTable获取其值,并且输入到TextBox3中的值应与其中一个DDL3值匹配,以在单击搜索按钮后显示搜索结果。当TextBox3值为null或与DDL3中的任何值都不匹配时,会发生NullReferenceException错误。这是合理的;但是,我花了几个小时试图处理这个错误,我似乎无法弄清楚如何去做。我试图添加额外的“If”语句,例如“如果TextBox3 == null等等......但是,无济于事。我应该如何更改上面的if语句以补偿空值或错误的值?

谢谢,

DFM

2 个答案:

答案 0 :(得分:2)

尝试使用try ... catch异常:

try {
    TextBox3.text = DropDownList3.Items.FindByText(TextBox3.Text).Value
} catch (NullReferenceException ex) {
    TextBox3.text = "(none)";
}

答案 1 :(得分:1)

在检查其值之前,您应该检查项目是否存在于列表中。

if (DropDownList3.Items.FindByText(TextBox3.Text) != null)
{
   // ...
}