【问题标题】:How to resolve a null reference exception in vb.net如何解决 vb.net 中的空引用异常
【发布时间】:2021-12-25 18:52:20
【问题描述】:
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 出现异常,因为“对象引用未设置为对象的实例:

【问题讨论】:

标签: asp.net vb.net


【解决方案1】:

如果您有一个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

【讨论】:

    【解决方案2】:
    If (dt Is Nothing) Then
            Label5.Text = "0"
        Else
            Label5.Text = dt.Rows.Count.ToString()
        End If
    

    这段代码应该可以解决问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-12-06
      • 1970-01-01
      • 2011-11-04
      • 2014-01-06
      • 1970-01-01
      • 2012-10-20
      • 1970-01-01
      相关资源
      最近更新 更多