Грешка в DetailView: Препратката към обект не е зададена на екземпляр на обект

Опитвам се да актуализирам потребителска информация и получавам следната грешка:

Препратката към обект не е зададена към екземпляр на обект. Описание: Възникна необработено изключение по време на изпълнението на текущата уеб заявка. Моля, прегледайте проследяването на стека за повече информация относно грешката и откъде произлиза в кода.

Подробности за изключение: System.NullReferenceException: Препратката към обект не е зададена на екземпляр на обект.

Грешка в източника:

Ред 20: 'конструктор без параметри Ред 21: Ред 22:
user.Email = DirectCast(e.NewValues(0), String) Ред 23: user.Comment = DirectCast(e.NewValues(1), String) Ред 24 : user.IsApproved = CBool(e.NewValues(2))

Кодът .vb е:

Protected Sub UserInfo_ItemUpdating(ByVal sender As Object, ByVal e As DetailsViewUpdateEventArgs)
        'Need to handle the update manually because MembershipUser does not have a
        'parameterless constructor  

        user.Email = DirectCast(e.NewValues(0), String)
        user.Comment = DirectCast(e.NewValues(1), String)
        user.IsApproved = CBool(e.NewValues(2))

        Try
            ' Update user info:
            Membership.UpdateUser(user)

            ' Update user roles:
            UpdateUserRoles()

            UserUpdateMessage.Text = "Update Successful."

            e.Cancel = True
            UserInfo.ChangeMode(DetailsViewMode.[ReadOnly])
        Catch ex As Exception
            UserUpdateMessage.Text = "Update Failed: " + ex.Message

            e.Cancel = True
            UserInfo.ChangeMode(DetailsViewMode.[ReadOnly])
        End Try
    End Sub

По-долу е .aspx кодът за detailView:

 Protected Sub UserInfo_ItemUpdating(ByVal sender As Object, ByVal e As DetailsViewUpdateEventArgs)
        'Need to handle the update manually because MembershipUser does not have a
        'parameterless constructor  

        user.Email = DirectCast(e.NewValues(0), String)
        user.Comment = DirectCast(e.NewValues(1), String)
        user.IsApproved = CBool(e.NewValues(2))

        Try
            ' Update user info:
            Membership.UpdateUser(user)

            ' Update user roles:
            UpdateUserRoles()

            UserUpdateMessage.Text = "Update Successful."

            e.Cancel = True
            UserInfo.ChangeMode(DetailsViewMode.[ReadOnly])
        Catch ex As Exception
            UserUpdateMessage.Text = "Update Failed: " + ex.Message

            e.Cancel = True
            UserInfo.ChangeMode(DetailsViewMode.[ReadOnly])
        End Try
    End Sub

Някаква идея как мога да сортирам това?

Всяка помощ ще бъде високо оценена.

Благодаря


person AJsStack    schedule 21.02.2011    source източник


Отговори (1)


Първото ми предположение, без да виждам повече код, би било, че вашата променлива user е нула. Зададохте ли го, когато изобразихте страницата? Предполагам, че вашият код по-горе е обратна поща и затова user е загубил стойността си.

person Andy    schedule 21.02.2011
comment
благодаря за отговора... За пълния код, моля, проверете stackoverflow.com/questions/5059125/ - person AJsStack; 21.02.2011
comment
Какво трябва да променя? извинения за липсата ми на познания по програмиране. - person AJsStack; 21.02.2011