0

さまざまなテーブルを含むデータベースがあり、さまざまな SQL クエリを使用して以下を抽出します。

表1

ID、姓、役職、部署

1、ジョーンズさん、20 歳

1、ジョーンズさん、21歳

個人は、多くの部門のメンバーになることができます。したがって、私が実行する SQL クエリは、同じ人 (同じ ID) の複数の行を生成しますが、部門 ID は異なります。この情報はリストに格納されます。

この情報を問題なく DataGridView オブジェクトに表示できます。

また、部門の別のリストもあり、SQL クエリを介して入力します。

ID、名前

20、アカウント

21、管理者

私が達成しようとしているのは、これら2つのリストを組み合わせることです。そのため、次のような結果になります:-

ID、姓、役職、部署

1、ジョーンズ、氏、アカウント、管理者

したがって、新しい 3 番目のリストには個人 ID ごとに 1 行しか含まれませんが、その行には部門 ID ではなく部門名が含まれ、その行にはその人がメンバーであるすべての部門が含まれます。

4

1 に答える 1

2

SQL で結合を行うことをお勧めします。より効率的であるためです。それが、DataBase が設計されていることです。

ただし、本当に必要な場合は、LINQ to Objects を使用できます。私はあなたが2つのリストを持っていると仮定しました:

var people = new List<Person>();
var departments = new List<Department>();

両方Personと、Departmentあなたが書いたプロパティがあります。

クエリ:

var query= from p in people
           join d in departments on p.Department equals d.ID
           group d by new { p.ID, p.Surname, p.Title } into g
           select new {
               g.Key.ID,
               g.Key.Surname,
               g.Key.Title,
               Departments = String.Join(", ", g.Select(d => d.Name))
           };

そして、クエリからList匿名型の結果を取得します。

var result = query.ToList();
于 2013-04-07T19:14:22.943 に答える