如何解决 vb.net 中的空引用异常
How to resolve a null reference exception in vb.net
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim dt As New DataTable
dt = CType(Session("buyitems"), DataTable)
If (dt Is Nothing) Then
Label5.Text = dt.Rows.Count.ToString()
Else
Label5.Text = "0"
End If
End Sub
Protected Sub DataList1_ItemCommand(source As Object, e As DataListCommandEventArgs) Handles DataList1.ItemCommand
Dim dlist As DropDownList = CType(e.Item.FindControl("DropDownList1"), DropDownList)
Response.Redirect("AddToCart.aspx?id=" + e.CommandArgument.ToString() + "&quantity=" + dlist.SelectedItem.ToString)
End Sub
我得到 System.NullreferenceException
的异常,因为“对象引用未设置为对象的实例:
如果 DataTabl
e 存储在 Session
变量 buyitems
中,那么在声明局部变量时不要创建 New
。
我想你只是在 If
语句中颠倒了赋值。
Session
变量里好像没有DataTable
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim dt As DataTable
dt = CType(Session("buyitems"), DataTable)
If dt Is Nothing Then
Label5.Text = "0"
Else
Label5.Text = dt.Rows.Count.ToString()
End If
End Sub
If (dt Is Nothing) Then
Label5.Text = "0"
Else
Label5.Text = dt.Rows.Count.ToString()
End If
此代码应该可以解决问题。
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim dt As New DataTable
dt = CType(Session("buyitems"), DataTable)
If (dt Is Nothing) Then
Label5.Text = dt.Rows.Count.ToString()
Else
Label5.Text = "0"
End If
End Sub
Protected Sub DataList1_ItemCommand(source As Object, e As DataListCommandEventArgs) Handles DataList1.ItemCommand
Dim dlist As DropDownList = CType(e.Item.FindControl("DropDownList1"), DropDownList)
Response.Redirect("AddToCart.aspx?id=" + e.CommandArgument.ToString() + "&quantity=" + dlist.SelectedItem.ToString)
End Sub
我得到 System.NullreferenceException
的异常,因为“对象引用未设置为对象的实例:
如果 DataTabl
e 存储在 Session
变量 buyitems
中,那么在声明局部变量时不要创建 New
。
我想你只是在 If
语句中颠倒了赋值。
Session
变量里好像没有DataTable
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim dt As DataTable
dt = CType(Session("buyitems"), DataTable)
If dt Is Nothing Then
Label5.Text = "0"
Else
Label5.Text = dt.Rows.Count.ToString()
End If
End Sub
If (dt Is Nothing) Then
Label5.Text = "0"
Else
Label5.Text = dt.Rows.Count.ToString()
End If
此代码应该可以解决问题。