2014-05-17 53 views
0

这背后我得到一个错误“不设置到对象的实例对象引用”

Private Property ListEmployee As List(Of Employee) 
    Get 
     Return Session(Me.GetType.Name) 
    End Get 
    Set(ByVal value As List(Of Employee)) 
     Session(Me.GetType.Name) = value 
    End Set 
End Property 
Private ReadOnly Property objEmployee As Employee 
    Get 
     Dim obj As New Employee 
     obj.User_ID = txtUserID.Text.Trim 
     obj.Name = txtName.Text.Trim 
     obj.Position = txtPosition.Text.Trim 
     Return obj 
    End Get 
End Property 
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 

End Sub 
Protected Sub btnAddtoTable_Click(sender As Object, e As EventArgs) Handles btnAddtoTable.Click 
    ListEmployee.Add(objEmployee) 'error at here 
    gvResult.DataSource = ListEmployee 
    gvResult.DataBind() 
End Sub 

末级

我尝试数据(类员工)加入到ListEmployee为我的代码(员工列表),然后显示在gridview上,但我得到一个错误。

+1

您是否尝试过踏进你的代码,看看什么'ListEmployee'值和'objEmployee'是?很可能'ListEmployee'不在'Session'中。 – Tim

+0

ListEmployee ==> value = count = 0(错误无子女可用)objEmployee ==>具有值 – user3534404

回答

0

这是最好的断点和拆分功能,看看错误的地方,但看你的代码我很确定问题是在ListEmployee对象。 ListEmployee.Add()将获得对ListEmplyee对象的引用,并且您不检查该对象是否实际存在。你需要做一些数据验证在两个ListEmployee属性和objEmployee检查,我会做它在ListEmployee你在这里:

Private Property ListEmployee As List(Of Employee) 
Get 
    If Not IsNothing(Session(Me.GetType.Name)) Then 
     Return Session(Me.GetType.Name) 
    Else 
     Dim le as New List(Of Employee) 
     le.add(objEmployee) 
     Session(Me.GetType.Name) = le 
     Return le 
    End If 
End Get 
Set(ByVal value As List(Of Employee)) 
    Session(Me.GetType.Name) = value 
End Set 
End Property 
+0

谢谢Mr.Moore。该错误已解决,但我没有在我的GridView中获取任何数据。 – user3534404

+0

是的,这是正确的。发生什么事是你正在尝试从'Session(Me.GetType.Name)'加载数据,但没有任何内容。您没有将数据加载到会话对象中。为了解决这个问题,你需要弄清楚为什么'Session(Me.GetType.Name)'中没有数据。你确定你已经加载了吗? –

+0

你有什么想法如何将objEmployee添加到ListEmployee ==> Session(Me.GetType.Name) – user3534404

相关问题