0

私はこれをしばらく研究してきましたので、どこかでトピックを見逃した場合は、正しい方向に向けて謝罪を受け入れてください。

着信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;
4

1 に答える 1

0

この行:

 where (c.Region == r.RegionDescription)

...疑わしいようです。もしそうならc.Region = r.RegionDescription、なぜあなたはrまったく持ち込む必要があるのですか?これを使用するのは、RegionDescriptionを取得することだけです。

あなたのテーブルはわかりませんが、一致しない2つのフィールドを結合すると、確実に0レコードが返されます。:)

于 2012-12-06T18:20:12.183 に答える