詳細ビューのエラー:オブジェクト参照がオブジェクトのインスタンスに設定されていません

StackOverflow https://stackoverflow.com/questions/5061246

質問

ユーザー情報を更新しようとすると、次のエラーが発生します。

オブジェクト参照が オブジェクトのインスタンス。説明:ひとつの 未処理の例外が次の場合に発生しました 現在の Web の実行 依頼。スタックトレースを確認してください エラーの詳細については、 そして、それがコードのどこから来たのか。

例外の詳細:System.NullReferenceException:オブジェクト参照がオブジェクトのインスタンスに設定されていません。

ソースエラー:

20行目:'パラメーターレスコンストラクターライン21:22行目:
user.email = directcast(e.newvalues(0)、string)行23:利用者。コメント = DirectCast(e.NewValues(1), 文字列) 24行目:利用者。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

以下は、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 価値を失いました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top