LINQ to perform operation with DataTable in C#

If you are a C#.Net developer, then you must be familiar with Data Table and LINQ.
In C#, a Data Table is an in-memory object to represents data in tabular format i.e. rows and columns.
Once you get data in a Data Table object there could be various operations that can be performed.

In this blog, I will explain about the LINQ code that is very helpful while working with Data Table.
For eg – If you want to do a sum of a column data or want to check a null value in a cell.

Select N rows from the Data Table using LINQ in C#

Suppose you have your data in a Data Table but you want to show or manipulate only 4 or 5 or 6 or n records, then below is the C# code to implement this facility.
              string spQuery = “GetData”;
            SqlParameter[] param = new SqlParameter[1];
            param[0] = new SqlParameter(“@department”, txtDept.Text);
            DataSet ds = //Your Data Logic
            var topNRows = from EmpData in ds.Tables[0].AsEnumerable().Take(3)                               
                  select new
                   {
                  Name = EmpData.Field<string>(“name”),
                  Dept = EmpData.Field<string>(“dept”),
                  City = EmpData.Field<string>(“city”),
                  Grade= EmpData.Field<string>(“grade”)
                   };
                rptData.DataSource = topRows;
                rptData.DataBind();
           

The below code is to sum the value of a column called ‘marks’ available in a DataTable.

 
decimal totalMarks = ds.Tables[0].AsEnumerable().Sum(r => r.Field<decimal?>(“marks”) ?? 0);
 

Below code is to check the row count where the particular column should not contain a null value.

 
int valueCount = ds.Tables[0].AsEnumerable().Where(c=>c.Field<decimal?>(“studentCode”) != null).Count();
 

Find records from DataTable using LINQ in C#



int deptCount = dTable.AsEnumerable().Where(c => c.Field<string>(“dept”) == “IT”).Count();

C# code to select value from DataTable

       

 
 DataRow[] result = dtable.Select(“marks >= 75”);
        foreach (DataRow row in result)
        {
            string stuname = row[0].ToString();
            string rollno = row[1].ToString();
        }
 

Leave a Comment

RSS
YouTube
YouTube
Instagram