【发布时间】:2012-04-25 07:42:44
【问题描述】:
我的数据库中有两个表,Building 和 Town。它们看起来像这样:
建筑:
buildingid
buildingname
城镇:
id
userid
buildingid
在城镇中,用户拥有的每一栋建筑都有一个入口。
我想要的是为具有给定用户 ID 的用户填充 GridView。此 GridView 应包括建筑物名称和建筑物数量。 建造。我试过这个:
var buildings = (from Town in dc.Towns
join Building in dc.Buildings
on Town.buildingid equals Building.buildingid
select Building.buildingname);
gvBuildings.DataSource = buildings;
gvBuildings.DataBind();
但我不知道如何获取每个建筑物的编号。
我现在已经为此工作了一段时间,您的一些答案有效。我用过这段代码:
var buildings = dc.Towns
.Where(t => t.userid == userid)
.GroupJoin(dc.Buildings,
t => t.buildingid,
b => b.buildingid,
(Town, Buildings) => new
{
BuildningName = Buildings.First().buildingname,
Count = Buildings.Count()
});
gvBuildings.DataSource = buildings.ToList();
gvBuildings.DataBind();
当我运行这段代码时,我的 GridView 最终看起来像这样:
我需要按组显示建筑物,按建筑物名称分组。我已经尝试了所有建议,但我无法让它发挥作用。
【问题讨论】:
-
每个建筑物的数量是建筑物的ID还是每个建筑物的数量?
-
@PranayRana 要获得数字,我需要计算城镇中的每个条目,其中 userid == parameterUserId 和 Buildingid == parameterBuildingid
-
您似乎只需要添加一个 where 条件,因为您已经在建筑物 ID 上应用了 inne 连接 ...
-
试试我更新的解决方案我的答案可能对你有用...
-
一些解决方案很有效。但它不会按建筑物名称对结果进行分组。我填充了 GridView,但它的显示如下:军营 1、军营 1、军营 1、马厩 1、射箭 1。
标签: c# asp.net linq-to-sql gridview join