为什么我得到NullReferenceException呢?

时间:2014-05-13 18:35:39

标签: asp.net vb.net nullreferenceexception

我正试图获得看似应该是一小段代码才能工作的东西,但我不断得到ole Null Reference Exception ......

Dim materialID As Integer = CInt(Request.QueryString("MaterialID"))
    Dim s As String = Nothing
    DBTable = MaterialStuff.GetMaterialHeader(materialID)

    Using DBTable

        s = CType(DBTable.Rows(0).Item("MaterialID"), String)

        Try

            If CType(DBTable.Rows(0).Item("MaterialID"), String) IsNot Nothing Then

                CType(MaterialIdControl, TextBox).Text = s
            Else

            End If

        Catch ex As NullReferenceException

            MsgBox(ex.ToString)
        End Try
    End Using

以下是MaterialIdControl的来源:

Dim MaterialIdControl As Control = FindControl("txtMaterial")

当单步执行时s等于970(970不是我知道的字符串,但之前的程序员搞砸了这个程序)无论如何,正确的值是存在的,但它仍然说有一个例外,我可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

有几种可能性:

1)页面中不存在查询字符串“MaterialID”。

Request.QueryString("MaterialID")

这可能会导致MaterialStuff.GetMaterialHeader(materialID)引发null异常。 如果查询字符串存在,请检查浏览器的地址栏。

2)页面中可能不存在控件“txtMaterial”。

FindControl("txtMaterial")

这可能会导致CType(MaterialIdControl,TextBox)引发null异常.Text = s

请检查您的代码,如果您仍未找到异常原因,请在此处粘贴调试器生成的异常消息。