Asp.net 为什么我会得到NullReferenceException?
我试图得到一段看似简单的代码来工作,但我一直得到oleAsp.net 为什么我会得到NullReferenceException?,asp.net,vb.net,nullreferenceexception,Asp.net,Vb.net,Nullreferenceexception,我试图得到一段看似简单的代码来工作,但我一直得到oleNull引用异常 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
Null引用异常
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
以下是MaterialdControl
的来源:
Dim MaterialIdControl As Control = FindControl("txtMaterial")
当单步执行时,
s
等于970
(我知道970不是一个字符串,但之前的程序员把这个程序搞乱了)。无论如何,正确的值在那里,但它仍然表示有一个异常,知道我可以在哪里修复它吗?有几种可能性:
1) 页面中不存在查询字符串“MaterialID”
Request.QueryString("MaterialID")
FindControl("txtMaterial")
这可能会导致MaterialStuff.GetMaterialHeader(materialID)引发null异常。
检查浏览器的地址栏是否存在查询字符串
2) 该页中可能不存在控件“txtMaterial”
Request.QueryString("MaterialID")
FindControl("txtMaterial")
这可能导致CType(MaterialdControl,TextBox)引发空异常。Text=s
请检查您的代码,如果您仍然没有找到异常的原因,请将调试器生成的异常消息粘贴到此处。几乎所有的
NullReferenceException
情况都是相同的。请参阅“”以获取一些提示。从何处获取异常?也许它来自DBTable.Rows,或者来自DBTable.Rows[0].Item……我想出来了,伙计们,我把im materialdcontrol作为Control=FindControl(“txtmatterial”)
放在了错误的位置,并且语法错误,所以搞砸了。无论如何,谢谢你:)