【发布时间】:2016-03-02 11:55:22
【问题描述】:
我正在从数据库中获取记录并将结果存储在数据集中。
我的数据集是这样的
Sid Table userid par1 par2 par3
274 tbl1 43 0 0 0
232 tbl1 43 1 2 0
232 tbl1 43 1 2 1
232 tbl2 43 1 2 0
232 tbl2 43 1 2 1
我想显示所有 6 列但不同的记录。不同应该在 Sid、Table 和 userid 上。我想要这样的输出
Sid Table userid par1 par2 par3
274 tbl1 43 0 0 0
232 tbl1 43 1 2 0
232 tbl2 43 1 2 0
所以使用以下查询。我是 linq 的新手。
Datatable.Rows.Cast<DataRow>()
.GroupBy(r => new { Sid = r.Field<int>("Sid"), userid = r.Field<int>("userid"), Table = r.Field<string>("Table") })
.Select(e => e.FirstOrDefault())
.Select(grp => new
{
Sid = grp.Field<int>("Sid"),
userid = grp.Field<int>("userid"),
Table = grp.Field<string>("Table"),
par1 = grp.Field<int>("par1"),
par2 = grp.Field<int>("par2"),
par3 = grp.Field<int>("par3")
});
我的列本质上是动态的。一些用户有 par2,一些 1 类似。有没有办法选择所有列而不是指定列名?
【问题讨论】:
-
您希望结果是数据行还是匿名类型?
-
我想将结果绑定到gridview
标签: asp.net asp.net-mvc linq