选择新的非数据绑定rad GridView

时间:2014-02-13 09:02:11

标签: asp.net linq gridview

我的select新语句从两个不同的表中获取值 但它在网格视图中没有数据绑定请帮忙。

var search = (from u in db.Users
              join s in db.Sites on u.SiteID equals s.SiteID
              where u.FirstName.Contains(tbSearch.Text.Trim())
              select new 
              {
                  u.FirstName,
                  u.LastName,
                  u.Username,
                  u.Password,
                  s.SiteName,
                  u.Active
              });

if (search != null)
{

    rgUsers.DataSource = search;
    rgUsers.DataBind();

}

1 个答案:

答案 0 :(得分:0)

search是一个查询定义。这不是查询执行的结果。因此,请检查search != null是否仅验证该查询是否已分配给变量search。它不会验证执行查询时是否会返回某些数据。例如。 if (search.Any())执行查询并验证是否返回了某些内容。但每次调用查询都将是单独的数据库查询(这是性能命中)。因此,如果您只想在结果不为空时分配数据,则应执行查询,将其结果保存到内存列表中,然后检查列表是否为空:

var userSites = search.ToList(); // single database query here
if (userSites.Any()) // in-memory check without database query
{
    rgUsers.DataSource = userSites;
    rgUsers.DataBind();
}