繁体   English   中英

C#在列表中存储数据库表行

[英]C# Storing database table rows in Lists

我有一个包含各种表的数据库,我使用各种SQL查询来提取以下内容: -

表格1

ID, Surname, Title, Department

1,   Jones,     Mr,    20

1,   Jones,     Mr,    21

一个人可以是许多部门的成员。 所以我做的SQL查询会产生同一个人的多行(相同的ID)但具有不同的部门ID。 该信息存储在列表中。

我可以在DataGridView对象中毫无问题地显示此信息。

我还有另一个部门列表,我通过SQL查询填充: -

ID,  Name

20,  Accounts

21,  Admin

我想要实现的是结合这两个列表,所以我最终得到的结果如下:

ID, Surname, Title, Department

1,   Jones,     Mr,    Accounts, Admin

因此,新的第三个List每个人ID只包含1行,但该行包含部门名称而不是部门ID,并且该行包含该人员所属的所有部门。

我建议在SQL中加入,因为它会更高效 - 这就是DataBase的目的!

但是,如果你真的想要你可以使用LINQ to Objects。 我假设你有两个清单:

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

PersonDepartment都有你写过的房产。

您的查询:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM