我通过运行存储过程来填充数据集,并且从数据集中填充数据表。
DataSet RawDataSet = DataAccessHelper.RunProcedure("storedprocedureName");
//this will just return the dataset by running the procedure
DataTable RankTable = RawDataSet.Tables[0];
数据表具有以下值:
Vicky Login 6/24/2014
Vicky Login 6/25/2014
Arun Game 6/26/2014
Arun Login 6/27/2014
Kumar Login 6/28/2014
Kumar Game 6/29/2014
Arun Login 6/30/2014
Arun Login 7/1/2014
Kumar Game 7/2/2014
Vicky Login 7/3/2014
Arun Login 7/4/2014
Arun Game 7/5/2014
我想解析这个数据表并获取每个人执行某个操作的次数,即每行重复多少次:
Vicky Login 3
Arun Game 2
Arun Login 4
Kumar Login 1
Kumar Game 2
我是 C# 新手。这可以使用 SQL 中的 count(*) 来完成,但我需要使用 C# 来完成。
请告诉我是否有任何方法可以实现这一目标。
我已经搜索过,但所有帖子都与删除重复项/查找重复项有关,这并不能解决我的目的。
您可以使用 LINQ 来实现这一点,例如:
var query = RankTable.AsEnumerable()
.GroupBy(r => new { Name = r.Field<string>("Name"), Action = r.Field<string>("Action") })
.Select(grp => new
{
Name = grp.Key.Name,
Action = grp.Key.Action,
Count = grp.Count()
});
Here Name
假定为第一列的列名称,并且Action
假定为第二列的名称,其中包含登录、游戏等值。
你可能会看到LINQ 到数据集 - MSDN http://msdn.microsoft.com/en-us/library/bb386977%28v=vs.110%29.aspx
对于输出使用:
foreach (var item in query)
{
Console.WriteLine("Name: {0}, Action: {1}, Count: {2}",item.Name, item.Action,item.Count);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)