我从数据库中获取记录并将结果存储在数据集中。
我的数据集就像这样
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列但不同的记录.Distinct应该在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 to dataset / datatable。 我无法在数据集上获得AsEnumerable方法,但获得了数据表。
答案 0 :(得分:1)
我对这个问题感到困惑,但这是否是你想要的?
yourDatatable.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")
});