DetailView 오류:개체 참조가 개체의 인스턴스로 설정되지 않았습니다.
-
15-11-2019 - |
문제
사용자 정보를 업데이트하려고 하는데 다음 오류가 발생합니다.
객체 참조 객체의 인스턴스로 설정되지 않습니다.설명:현재 웹 요청을 실행하는 동안 처리되지 않은 예외가 발생했습니다.오류 및 코드에서 시작된 위치에 대한 자세한 내용은 스택 추적을 검토하십시오.
예외 세부정보:System.NullReferenceException:객체 참조 객체의 인스턴스로 설정되지 않습니다.
소스 오류:
20행:'매개 변수가없는 생성자 라인 21 :22행:
user.email = directcast (e.newvalues (0), 문자열) 행 23 :user.comment = directcast (e.newvalues (1), String) 줄 24 :user.isalkroved = 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
다음은 DetailView의 .aspx 코드입니다.
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
이걸 어떻게 정렬할 수 있는지 아시나요?
어떤 도움이라도 대단히 감사하겠습니다.
감사해요
해결책
더 많은 코드를 보지 않고도 내 첫 번째 추측은 user
변수가 null입니다.페이지를 렌더링할 때 설정했습니까?위의 코드는 포스트백이라고 가정합니다. user
그 가치를 잃었습니다.
제휴하지 않습니다 StackOverflow