Distinct records in DataTable

68,265

Solution 1

You can use like follows

DataView view = new DataView(table);
DataTable distinctValues = view.ToTable(true, "Column1", "Column2" ...);

More detail
How to select distinct rows in a datatable and store into an array

Solution 2

Can you try this?

var myResult = dt.AsEnumerable().Select(c => (DataRow)c["MyColumn"]).Distinct().ToList();
Share:
68,265
Nomi Ali
Author by

Nomi Ali

Fullstack Engineer #SOreadytohelp

Updated on December 23, 2020

Comments

  • Nomi Ali
    Nomi Ali over 3 years

    I want to get distinct records based on some fields. I'm using the following method:

    string[] TobeDistinct = { "PKID" };
    DataTable dtDistinct = GetDistinctRecords(ds.Tables[0], TobeDistinct);
    DataSet ds2 = new System.Data.DataSet();
    ds2.Tables.Add(dtDistinct);
    
    public static DataTable GetDistinctRecords(DataTable dt, string[] Columns)
    {
        DataTable dtUniqRecords = new DataTable();
        dtUniqRecords = dt.DefaultView.ToTable(true, Columns);
        return dtUniqRecords;
    }
    

    This gives me the distinct records, but only two records come. Only two distinct PKID will come. For example, I have multiple records with PKID 10,12,14,16, but the result is 2 rows with PKID 10 and 12. More two rows are not there, but should be there. What do I need to do?

    I follow this article: http://www.codeproject.com/Tips/153008/Select-DISTINCT-records-based-on-specified-fields

    enter image description here