Remove Duplicate rows records from DataTable c#

satinder singh / Updated : / 11 Comments

Overview: This article explains how to remove duplicate records from DataTable in C#. In SQL Server database if a table contains duplicate records then it is easy to select unique records by using DISTINCT built-in Ms-SQL function and get duplicate free rows. But when a Dot.NET c# DataTable contains duplicate records then, we have to do something extra work to get duplicate-free records in datatable.

In many blogs on similar article, you find they use For loop, Dataview, Array List and delete duplicate rows over looping etc for removing duplicate rows.
Here i will show you a simple and much faster way, in this article I create a function which gives unique records from a DataTable in C#.NET and return a clean and duplicate free record DataTable which will copy to new datatable variable and get clean duplicate free distinct records.


On page load below written code will return distinct DataTable row records, i.e Remove duplicated rows.

protected void Page_Load(objectsender,EventArgse)
      DataTable getDistinctData = RemoveDuplicatesRecords(GetData());

private DataTable RemoveDuplicatesRecords(DataTable dt)
    //Returns just 5 unique rows
    DataTable dt2=UniqueRows.CopyToDataTable();

This is our DataBinding method

private static DataTable GetData()
	//Assume this returns all rows although there are just 5 distinct rows.
	SqlDataReader reader=null;
	DataTable dt=newDataTable();
	using(SqlConnection conn=newSqlConnection())
    	using(SqlCommand cmd=newSqlCommand())
        	cmd.CommandText="SELECT col1,col2 FROM tableName ORDER BY col1";
	return dt;

Yeah, we are done πŸ™‚

Hope you enjoyed this tutorial. If you have any recommendations, please let us know what you think in the comment section below! See you again next time!

11 comments on β€œRemove Duplicate rows records from DataTable c#”

    • Satinder singh

      On which basis you came to know its slow? Pls provide me some test cases, so i can overcome with this, also if you have any aternative best way to do then do share with me πŸ™‚

  1. Anonymous

    That is the simplest solution I have ever seen to this common situation. I’ll be using this approach from now on. Nice one!

Post Comment

Your email address will not be published. Required fields are marked *