如何解决 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 的异常,因为“对象引用未设置为对象的实例:

如果 DataTable 存储在 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

此代码应该可以解决问题。