Select distinct en datatable

21/01/2009 - 20:32 por Ramón | Informe spam
Poseo una datatable con los campos: campo1, campo2 que tienen valores
repetidos.

Necesito hacerle un select para generar otra tabla pero con un distinct
parecido a sql server

select distinct campo1, campo2 from table1


Como lo hago en C# con los datos que ya tengo en la datatable?

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
22/01/2009 - 11:03 | Informe spam
"Ramón" wrote in message
news:%23j3SU8$
Poseo una datatable con los campos: campo1, campo2 que tienen valores
repetidos.

Necesito hacerle un select para generar otra tabla pero con un distinct
parecido a sql server

select distinct campo1, campo2 from table1


Como lo hago en C# con los datos que ya tengo en la datatable?



Lamentablemente, el DataTable no tiene nada que te haga directamente el
"select distinct". Tendrías que hacerlo a mano, ordenando primero los datos
(esto sí que lo hace el Select del DataTable, bien puedes usar el Sort de un
DataView) y a continuación recorriendo los registros con un bucle saltándote
los duplicados.

Si estás usando C# versión 3.0 (Visual Studio 2008), puedes usar
LINQ-to-ADO.Net, aplicando el método extensor Distinct().
Respuesta Responder a este mensaje
#2 Ricardo Passians
22/01/2009 - 13:28 | Informe spam
Hola Alberto,


Si estás usando C# versión 3.0 (Visual Studio 2008), puedes usar
LINQ-to-ADO.Net, aplicando el método extensor Distinct().






También para el DataView tiene la opción del método ToTable(), que trae una
sobrecarga con un parámetro bool para eso:

Ejemplo:
MyDataTable.DefaultView.ToTable(true, "columna1", "columna2");

Claro, siempre es bueno evaluar la cantidad de registros y chequear el
performance de esas opciones a ver si quizás no es preferible traerse los
datos ya procesados con una consulta desde el servidor (en mi caso yo lo
prefiero).

Saludos

Ricardo Passians
Respuesta Responder a este mensaje
#3 Ramón
24/01/2009 - 01:47 | Informe spam
muchas graciass

"Ricardo Passians" escribió en
el mensaje news:%
Hola Alberto,


Si estás usando C# versión 3.0 (Visual Studio 2008), puedes usar
LINQ-to-ADO.Net, aplicando el método extensor Distinct().






También para el DataView tiene la opción del método ToTable(), que trae
una sobrecarga con un parámetro bool para eso:

Ejemplo:
MyDataTable.DefaultView.ToTable(true, "columna1", "columna2");

Claro, siempre es bueno evaluar la cantidad de registros y chequear el
performance de esas opciones a ver si quizás no es preferible traerse los
datos ya procesados con una consulta desde el servidor (en mi caso yo lo
prefiero).

Saludos

Ricardo Passians



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida