Click here to Skip to main content
Rate this: bad
Please Sign up or sign in to vote.
See more: ASP.NET C#4.0
Hi everybody,
I have a doubt in handling the DataTable. I have a DataTable, in my datatable i have 100 rows. But out 100 , only 5 rows having data remaining all rows are empty.
Now my question is i want to remove all remaining 95 rows. which row doesn't have a data.
How to do can anybody help me regarding this issue...
Posted 15-Feb-13 1:16am
Rate this: bad
Please Sign up or sign in to vote.

Solution 2

If you need to do it without linq, you can try this.
NOTE: I did just hammer this out here, I haven't thoroughly checked the syntax.
private void RemoveEmptyRows(DataTable source)
   for( int i = source.Rows.Count; i >= 0; i-- )
      DataRow currentRow = source.Rows[i];   
      foreach( var colValue in currentRow.ItemArray)
         if( !string.IsNullOrEmpty(colValue) )
         // If we get here, all the columns are empty
Rate this: bad
Please Sign up or sign in to vote.

Solution 1

Hi, in flowing example your actual data is stored in dt.
 DataTable dt1=dt.Clone();
        var rows =from row in dt.AsEnumerable()
            where row.Field<string>("columnname") != null
            select row;
        foreach (DataRow dr in rows)
you can create copy of dt to dt1 and using link you can find row which dose not have null value
naveensenagasetti at 15-Feb-13 8:21am
but i'm not using LINQ

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
0 CPallini 365
1 Sergey Alexandrovich Kryukov 262
2 OriginalGriff 165
3 George Jonsson 159
4 Richard MacCutchan 110
0 OriginalGriff 6,344
1 Sergey Alexandrovich Kryukov 5,860
2 CPallini 5,135
3 George Jonsson 3,559
4 Gihan Liyanage 2,522

Advertise | Privacy | Mobile
Web03 | 2.8.140916.1 | Last Updated 15 Feb 2013
Copyright © CodeProject, 1999-2014
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100