2012-03-01 59 views
-1

我正在使用此特定系统。在管理页面,当然作为管理员,他可以查看系统的所有用户。要查看所有用户,我使用此代码以检索db中的所有用户。检索除管理员以外的所有用户名

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

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

现在的问题是,网格视图显示所有的用户和管理员。我如何防止gridview显示管理员的电子邮件和用户名?

谢谢。

回答

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'的类型。 – 2012-03-01 03:50:02

+0

查询应该来自Membership.GetAllUsers()中的MembershipUser用户//参考:http://sqlblogcasts.com/blogs/simons/archive/2009/01/15/Using-LINQ-with-unfriendly-collections.aspx – MatthewMartin 2012-10-26 17:54:53

0

你需要有查询应检索只有正常(具体)的用户,而不是所有的管理员用户的用户和您的数据库应该有一个场与用户类型列应该有用户类型主表引用ID键。在检索时,您只需要传递select语句,具体指定要检索哪种类型的用户。

相关问题