Análisis y creación de archivo de datos para insertar en Sql Server 2019

Fecha de Publicación: 2021-04-16

Introducción

En este ejercicio analizaremos y crearemos un archivo para mostrar en la siguiente entrega como insertar datos masivamente.



Requisitos

  • Visual Studio 2019
  • Sql Server Management 2019
  • Archivo con datos para analizar, en este caso sera un archivo con datos de personas ya trabajado anteriormente



Resultado

La siguiente imagen muestra lo que obtendremos al realizar este ejercicio:





Codigo Fuente

Descargar

Ejercicio

Tomaremos como base el ejercicio anterior donde abrimos y parseamos el archivo que contienen datos de las personas, aca te dejo el link correspondiente para que puedas darle una revisada y si te sirve utilizar el codigo del mismo. Bien, en mi caso el archivo que quiero transformar para poder insertarlo sin problemas en la base de datos es el siguiente:

Nota: Debo señalar que siendo ya un programador experimentado el que lea este post, todo este trabajo se puede realizar sin crear ningun archivo secundario y solo manejarlo en memoria e insertar los datos directamente en una base de datos como lo hare posteriormente, sin embargo quiero que sea claro para el programador que no esta familiarizado con este tipo de problemas a resolver.


Como podemos observar, este archivo tiene una extensión .CSV (Coma Separated Value), tiene un encabezado que nos provee información acerca del contenido de las columnas y confirmamos que esta separado por ,(comas), damos por supuesto que el archivo es correcto.

En este ejercicio quitaremos el encabezado y convertiremos el genero a un tipo Booleano ya que solo existen 2 valores posibles, ademas tendremos que convertir la fecha a un tipo Date para poder despues realizar consultas.

Lo antes mencionado para eliminar el encabezado se puede hacer con una comparación de la cadena que comience con , o que la cadena no sea vacia o nula como se muestra en la siguiente imagen :



Ahora procederemos a revisar el parseo de la información, como he dicho antes, tomaremos el ejercicio ya pasado donde hacemos todo este trabajo y solo nos centraremos donde existen algunas diferencias.





Como vemos en los recuadros los casos 3 y 6 son los que cambian, en el caso 3 realizamos una comparación para convertirlos a bool y en el caso 6 convertimos la fecha con un formato de dd/MM/yyyy para asegurarnos que sea la correcta para insertarla en la base de datos.

Se que te estaras preguntando bueno y porque lo manda a Booleano si ya dice si es Hombre o Mujer, supongamos querramos realizar un query donde nos pidan filtrar la información por Hombres, si lo dejaramos con letras, se puede tener información erronea ya que al ser cadena siempre trendremos que estar validando exactamente si coincide con los valores, Hombre o Mujer y de esta manera aseguramos en un porcentaje bastante alto que todos los datos corresponden correctamente a los nos estan solicitando ya que solo son 2 valores posibles y al colocar algunos otras validaciones de control dentro del programa podemos mitigar casi al 100% que nuestra información sea correcta.

Ahora que ya tenemos estas 2 modificaciónes podemos darle el tratamiento que querramos a la información (insertarlo en la base de datos, crear un nuevo archivo, realizar consultas con linq, etc), en este ejercicio se creara un archivo de texto como resultado final, agregando el codigo siguiente:





Cabe mencionar que en el caso de que nos solicitaran realizar un reporte o un nuevo archivo con menos campos podemos adecuarlo a nuestras necesidades ya que como la información vive en el memoria solo necesitamos filtrarla o adecuarla según sea el caso.

Al final como ya mencione el resultado de este ejercicio es crear un nuevo archivo con la misma información (solo como ejemplo):





Referencias