【问题标题】:Select new not data binding rad GridView选择新的非数据绑定 rad GridView
【发布时间】:2014-02-13 09:02:11
【问题描述】:

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

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();

}

【问题讨论】:

    标签: asp.net linq gridview


    【解决方案1】:

    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();
    }
    

    【讨论】:

    • 感谢您的快速回复。
    • 不幸的是,它在网格视图中仍然没有显示任何内容。
    • @WhiteSpider 尝试为网格开启 AutoGenerateColumns,并确保查询结果不为空
    • no 不起作用,如果将我的 select 语句更改为“select u;”然后它填充 gridview 但没有 s.sitename
    • @WhiteSpider 确保您有从数据库返回的数据
    猜你喜欢
    • 1970-01-01
    • 2011-09-29
    • 2013-07-22
    • 1970-01-01
    • 1970-01-01
    • 2013-07-21
    • 2012-02-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多