Friday, January 18, 2013

How to get N row from datatable in C#

Problem:


Recently one of my friend was needed only first three rows of data table and so he asked me and I have multiple solutions for that. So thought it would be great idea to share with you guys.

Possible Solutions to problem:


There are two ways to solve this problem.
  1. With normal for loop
  2. With lamda expression and linq

1. With normal for loop:

Following is code from where we can get 3 rows of data table.

private  DataTable GetFirst3RowViaFor(DataTable dataTable) {
    DataTable newDataTable = dataTable.Clone();
    for(int i=0;i<3;i++)
    {
        DataRow row = dataTable.Rows[i];
        newDataTable.Rows.Add(row);
    }
    return newDataTable;
}

Here in this way I have cloned data table structure and then I added first 3 rows of data table to new data table.

2. With lamda expression:


Following is a code for that. It’s very easy. I have used lamda expression to get first 3 rows.

private static DataTable GetFirstThreeRowViaLinq(DataTable dataTable) {
    return dataTable.Rows.Cast<System.Data.DataRow>().Take(3).CopyToDataTable();
}

That’s it. Hope you liked it. Stay tuned more updates..



Share:

7 comments:

  1. dst.Tables[0].Rows.OfType().Take(3).CopyToDataTable(). will also do the trick

    OfType - return only the elements of type x.
    Cast - will try to cast all the elements into type x. if some of them are not from this type you will getInvalidCastException

    ReplyDelete
  2. return dataTable.Rows.OfType().Take(3).CopyToDataTable(); will also do the trick.

    OfType - return only the elements of type x.
    Cast - will try to cast all the elements into type x. if some of them are not from this type you will getInvalidCastException

    ReplyDelete
  3. @disqus_dm6TrEz5D2:disqus - Thanks for mentioning

    ReplyDelete
  4. Previously i use to code using clone in the application, now its better to go for Linq. Ravi has mentioned a good point

    ReplyDelete

Your feedback is very important to me. Please provide your feedback via putting comments.

Search This Blog
Loading...
About Me
My Photo

Full Stack Developer,Blogger,Microsoft Mvp, Mentor, Life long learner, 10+ Years of Experience for JavaScript, web and Microsoft technologies. ASP.NET MVC,Web Forms,C#,AngularJs,Golang
Mvp profile
Subscribe to my blog

Enter your email address:

Follow us on facebook
Blog Archive
Total Pageviews