Cita:
Iniciado por Bravenap
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