DTO A DATATABLE Y VICEVERSA

DTO A DATATABLE Y VICEVERSA

Video y codigo con correcciones

 

Hola a todos. Vamos a ver como podemos transformar los datos que provienen de un datatable a un objeto contenedor , que contienen DTOs con los datos.

Partiendo de la Base del DTO vamos a crear una clase con una funcion que transformara esos datos.

Lo primero es la clase DTO que vamos a utilizar que podria ser como esta.



Pues bien , ya tenemos el DTO general , ahora necesitamos los datos,
los puedes haber obtenido usando OLEDB, ADODB. o como sea yo los creare a mano para el ejemplo.

Como vas a ver , coinciden los formatos de campo con los formatos de campo del DTO, esto es importante por que si no dara error.



Ya tenemos la estructura DTO y el Datatable, pues ahora solo nos falta el convertidor, que yo , lo cree en una nueva clase, que se llama DTToDTO
(Datatable to DTO) cuya funcion es ToDTO al cual le pasamos el Datatable y el type del DTO. Primero el convertidor.

Y Ahora al contrario.


Lo primero que haremos sera crear una clase a la que yo llame DTOToDTT(DTO to Datatable) y Crearemos una funcion que yo llame ToDTT que tendra como variable un Object y el valor de retorno sera el datatable, y vamos a utilizar la misma logica con reflection la cosa de momento queda asi.


A continuación vamos trazar los siguientes pasos para no liarnos, de tal forma que quedara una secuencia logica.

1 Columnas y tipo de dato
2 Datos

Creamos el datatable y vamos a empezar a crear las columnas a traves del reflection, yo lo desglosare y saldrán mas lineas de codigo pero se puede hacer en 1 linea por cada columna del datatable.


La cosa va facil no??, creo que no necesita mucha explicación.
Bueno y ahora a rellenar los datos. Para ello vamos a repetir parte de la logica anterior añadimos un For para recorrer el Array y vamos creando los rows, como dije antes, lo voy a desglosar para que se entienda mejor,pero se puede hacer en menos lineas.

 

 

En 2 pasos, ya esta, ya lo tenemos resuelo. a continuacion os dejo todo el codigo completo.

 Enlace corto a este post http://4go.es/?4