2012-03-01 13 views
-1

私はこの特定のシステムで作業しています。 adminページではもちろん、管理者として、彼はシステムのすべてのユーザーを見ることができます。すべてのユーザーを表示するには、このコードを使用してdb内のすべてのユーザーを取得します。admin以外のすべてのユーザー名を取得します

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
     BindGridview(); 
    } 
} 

protected void BindGridview() 
{ 
    gvDetails.DataSource = Membership.GetAllUsers(); 
    gvDetails.DataBind(); 
} 

グリッドビューには、すべてのユーザーと管理者が表示されます。グリッドビューで管理者のメールとユーザー名が表示されないようにするにはどうすればよいですか?

ありがとうございます。

答えて

2

あなたはこのようなものだろう:あなたは、通常の(特定の)ユーザーと管理者のユーザーとではないすべてのユーザーのみを取得し、データベースフィールドを持っている必要があることのために必要があるクエリを持っている必要があります

using System.Linq; 

protected void BindGridview() 
{ 
    var users = from user in Membership.GetAllUsers() 
        where user.UserType != "Admin" 
        select user; 

    gvDetails.DataSource = users; 

    gvDetails.DataBind(); 
} 
+0

ありがとうございました。しかし、それは私にこのエラーを与える: 'System.Web.Security.MembershipUserCollection'ソースタイプのクエリパターンの実装を見つけることができませんでした。 '場所が見つかりません。範囲変数 'user'の型を明示的に指定することを検討してください。 –

+0

クエリは、Membership.GetAllUsers()のMembershipUserユーザーからのものである必要があります。//参照:http://sqlblogcasts.com/blogs/simons/archive/2009/01/15/Using-LINQ-with-unfriendly-collections.aspx – MatthewMartin

0

をUser Type Master TableからIdキーを参照しているはずのUser type列があります。検索時には、検索する特定のタイプのユーザーに特化したselectステートメントを渡す必要があります。

関連する問題