Select DISTINCT From Datatable Using C# Parte II

Existe siempre la necesidad de realizar un Select Distinct a un DataTable cuando las filas están repetidas. En esta ocasión les comparto una nueva solución en .Net C# que permite devolver los resultados con mas de una columna. 


using System.Data;

public DataTable SelectRowDisctinct(DataTable dtData, string sColumnName)
{
 try
 {                
  DataTable distintos = dtData.DefaultView.ToTable(true, sColumnName);
  DataTable dtNew = new DataTable();
  foreach (DataColumn dcName in dtData.Columns)
  {
   dtNew.Columns.Add(new DataColumn(dcName.Caption,dcName.DataType));
  }
   
  foreach (DataRow drRow in distintos.Rows)
  {
   dtNew.ImportRow(dtData.Select(sColumnName + " = '" + drRow[0] + "'")[0]);
  }
  return dtNew;
 }
 catch (Exception ex)
 {
  throw (ex);
 }
}

Espero les pueda servir, de un Select DISTINCT From Datatable Usando C#
Share:

Select DISTINCT From Datatable Using C#

Para un desarrollo tenia un inconveniente con un Datatable, el cual consistía en que los datos que tenia en ese momento se repetían, esto me ocasionaba inconsistencia en la presentación de la información.

Para esto necesitaba realizar un Select Distinct From muy parecido al que se realiza en Sql, pero usando C# o algo que me permitiera eliminar los datos repetidos en el Datatable, como solución realice la siguiente linea:

1. Declaro Datatable:
C#
DataTable dtDistinct = new DataTable();
VB
Dim dtDistinct As DataTable();

2. Realizo Distinct del Datatable dtAll que contiene los registros repetidos, por los campos que considero se repiten:
C#
string[] sColumnas = {"Campo1","Campo2"};
dtDistinct = dtAll.DefaultView.ToTable(true, sColumnas);
VB
String() sColumnas = "Campo1","Campo2"
dtDistinct = dtAll.DefaultView.ToTable(true, sColumnas)

Se obtiene el resultado de los registros sin duplicar, en el Datatable dtDistinct.

Ese fue un claro ejemplo de un Select DISTINCT From Datatable usando C#.
Share: