我正试图获得看似应该是一小段代码才能工作的东西,但我不断得到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不是我知道的字符串,但之前的程序员搞砸了这个程序)无论如何,正确的值是存在的,但它仍然说有一个例外,我可以解决这个问题吗?
答案 0 :(得分:0)
有几种可能性:
1)页面中不存在查询字符串“MaterialID”。
Request.QueryString("MaterialID")
这可能会导致MaterialStuff.GetMaterialHeader(materialID)引发null异常。 如果查询字符串存在,请检查浏览器的地址栏。
2)页面中可能不存在控件“txtMaterial”。
FindControl("txtMaterial")
这可能会导致CType(MaterialIdControl,TextBox)引发null异常.Text = s
请检查您的代码,如果您仍未找到异常原因,请在此处粘贴调试器生成的异常消息。