GETTING COUNT OF ALL REPEATED ROWS IN A DATATABLE IN C#

Allen Scott

Total Post:46

Points:324
Posted by  Allen Scott
C#  Database 
 794  View(s)
Ratings:
Rate this:

I am filling a dataset by running a stored procedure, and i am filling a datatable from the dataset.

DataSet RawDataSet = DataAccessHelper.RunProcedure("storedprocedureName");

//this will just return the dataset by running the procedure

DataTable RankTable = RawDataSet.Tables[0];

The Datatable has the below values:

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

I want to parse this dataTable and get how many times everyone has done an action, i.e how many times each row is repeated:

Vicky   Login  3

Arun    Game   2

Arun    Login  4

Kumar   Login  1

Kumar   Game   2

I am new to C#. This can be done using count(*) in SQL but I need to do this using C#. Please let me know if there are any ways to achieve this.

I have searched SO but all posts are related to removing the duplicates/finding the duplicates, which does not solve my purpose.

  1. Chris S

    Post:48

    Points:336
    Re: Getting count of all repeated rows in a datatable in C#

    You can achieve that using LINQ like:

    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 is assumed to be the column name for first column, and Action is assumed to be name of second column which has values like login, game etc.

    For output use:

    foreach (var item in query)

    {

        Console.WriteLine("Name: {0}, Action: {1}, Count: {2}",item.Name, item.Action,item.Count);

    }

Answer

NEWSLETTER

Enter your email address here always to be updated. We promise not to spam!