Ошибка 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