LINQ查询未在DGV中显示

时间:2012-12-06 18:11:50

标签: c# database linq datatable

我一直在研究这个问题,所以如果我在某个地方错过了一个主题,请指出我正确的方向并接受我的道歉。

我正在对传入的DataTable执行LINQ查询,并根据完成的过滤设置新列。传入的信息是包含以下列的单行:CompanyName,CustomerID,LastName,FirstName,ContactTitle。

我的问题是,我是否过度过滤信息,以至于它不会向DGV返回任何内容,或者我做了别的错误?

我要做的是根据从DataTable传入的信息查询另一个表。这是我的疑问:

            var query = (from id in IncomingOrderDetails.AsEnumerable()
                    from o in db.Orders
                    from c in db.Customers
                    from r in db.Regions
                    where (id.Field<int>("OrderID") == o.OrderID)
                    where (o.CustomerID == c.CustomerID)
                    where (c.Region == r.RegionDescription)
                    select new
                    {
                        CustomerID = c.CustomerID,
                        CompanyName = c.CompanyName,
                        ContactName = c.ContactName,
                        RegionDescription = r.RegionDescription,
                        Country = c.Country,
                        Phone = c.Phone
                    }).ToList();

        custInfoDGV.DataSource = query;

1 个答案:

答案 0 :(得分:0)

这一行:

 where (c.Region == r.RegionDescription)

......看起来很可疑。如果c.Region = r.RegionDescription,为什么需要引入r?所有你用它来检索RegionDescription。

我不知道你的表,但加入两个不匹配的字段肯定会产生0条记录。 :)