我的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();
}
答案 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();
}