Ver Mensaje Individual
  #5 (permalink)  
Antiguo 15/07/2010, 14:58
freezer27
 
Fecha de Ingreso: abril-2007
Mensajes: 20
Antigüedad: 17 años, 10 meses
Puntos: 0
Respuesta: Obtener DataTable resultante de un DataView

Cita:
Iniciado por Bravenap Ver Mensaje
Me costó pero lo conseguí ....

Explico los pasos:

Primero creo una nueva tabla y la doto de la estructura de la original:

Código:
Dim nTabla As DataTable
        nTabla = dt.Clone
Luego le aplico a la tabla original el mismo filtro que utilicé para el DataView, siendo filtro el StringBuilder que usé para crearlo. Con ello se seleccionan las filas que pasen el filtro:

Código:
Dim drFiltrada As DataRow()
        drFiltrada = dt.Select(filtro.ToString)
Finalmente añado una a una las filas seleccionadas a la nueva tabla:

Código:
For i As Integer = 0 To drFiltrada.Length - 1
            nTabla.Rows.Add(drFiltrada(i).ItemArray)
        Next
Ya tenenmos entonces una tabla con la misma estructura que la original pero con datos filtrados.

¿Alguna sugerencia o mejora?

Gracias y un saludo.
Usa mejor esto:


DataView dv = new DataView(dt); //asumiendo que dt es el datatable original
dv.Sort = "algo";
//demás acciones para filtrar u ordenar

DataTable dtResultante = dv.ToTable();


Este método (ToTable()) devuelve un datatable resultante del dataview. Solo es de buscar a fondo en todas las propiedades o métodos de lo que estemos utilizando.

Fuente: http://msdn.microsoft.com/es-es/library/a8ycds2f(v=VS.80).aspx