私は2つのメンバーシッププロバイダーを使用しています。私が次の声明を宣言したとき
Dim allUsers As MembershipUserCollection = Membership.Providers("MembershipRoleManager").GetAllUsers
次に、このエラーメッセージが表示されました。
Argument not specified for paramenter 'totalRecords' of 'Public MustOverride Function GetAllUsers(pageIndex as Integer, pageSize as Integer, ByRef totalRecords as Integer) As System.Web.Security.MembershipUserCollection'
次に、私はそれがこのように求めたものを追加しました:
Dim allUsers As MembershipUserCollection = Membership.Providers("MembershipRoleManager").GetAllUsers(1, 50, 100)
見返りはありません。私はそれをデバッグし、allUsers=Nothing。
上記の宣言の何が問題になっていますか?
Membership.Providers( "MembershipRoleManager")。GetAllUsersを呼び出すときに、本当にパラメーターを提供する必要がありますか?
アップデート1
もし、私が以下のステートメントを使用した場合:
Dim allUsers As MembershipUserCollection = Membership.Providers("MembershipRoleManager").GetAllUsers(0, 0, totalUser)
このエラーメッセージが表示されました:
The pageSize must be greater than zero.
Parameter name: pageSize.
[ArgumentException: The pageSize must be greater than zero.
Parameter name: pageSize]
System.Web.Security.SqlMembershipProvider.GetAllUsers(Int32 pageIndex, Int32 pageSize, Int32& totalRecords) +1848357
ただし、pageSizeパラメータを指定した場合は機能します。
Dim pageSize As Integer = GetTotalNumberOfUser()
Dim allUsers As MembershipUserCollection = Membership.Providers("MembershipRoleManager").GetAllUsers(0, pageSize, totalUser)
このステートメントDimpageSizeAs Integer = GetTotalNumberOfUser()は、カウントされたレコードの合計を返します。pageSizeパラメータ値を指定する必要があるため、ユーザーの合計数を取得するために、データベースへのラウンドトリップがすでに行われています。