Inserción de datos a tabla a Sql Server 2019 con aplicación de consola en C#

Fecha de Publicación: 2020-11-16

Introducción

En este ejercicio insertaremos datos datos a una tabla en Sql Server via programa de consola en C#

Requisitos

  • Visual Studio Community 2019
  • Sql Server 2019



Resultado

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





Codigo Fuente

Descargar

Ejercicio

Comenzaremos como siempre abriendo nuestro Visual Studio y creando nuestra solución con un proyecto de consola para este ejemplo lo llamare SqlServerInsertDataTable. Si no tienes conocimiento de como crearlo te dejo el link donde puedes aprender como hacerlo y regresar despues a este ejercicío.



Una vez creado nuestro proyecto agregaremos las referencias correspondientes, yendo a Explorador de Soluciones despues en Referencias dar clic derecho y despues dar clic en Agregar referencia....



Una vez que abra la ventana en Ensamblados -> Framework y buscar System.Configuration dar clic y dejar la palomita como se muestra en la imagen al finalizar dar clic en Aceptar.



Agregar en nuestra clase Program las bibliotecas necesarias para trabajar que son:

      
      using System.Configuration;
      using System.Data.SqlClient
      
    

04_ssidt


El siguiente paso es agregar el metodo para realizar la conexión a la base de datos, el cual es el siguiente:

      
static public SqlConnection OpenDB()
{
  SqlConnection sqlConn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnString"].ConnectionString);
  try
    {
      sqlConn.Open();
    }
    catch (SqlException ex)
    {
      throw new Exception(ex.Message, ex);
    }
    return sqlConn;
}      
      
    
Quedando como se muestra en la imagen:



Ahora agregaremos en el App.config la sección de connectionStrings quedando de la siguiente forma:

        
'<'connectionStrings>
  '<'add providerName="System.Data.SqlClient" name="ConnString" connectionString="Server=.;Database=devel;User Id=sa;Password=12345;"/>
'<'/connectionStrings>          
        
      

Y quedando así en el App.config:

Ahora agregaremos una clase a nuestro proyecto, daremos clic derecho, despues en Agregar y Nuevo elemento....



Una vez abierta la ventana nos posicionamos en Elementos de Visual C# y seleccionamos Clase, le daremos el nombre de Person y damos clic en Agregar.



Abrimos Person y comenzamos agregar las propiedades de la tabla de Sql Server, podemos escribir prop y despues tab para realizar mas rapido las declaraciones.

09_ssidt


La declaración completa queda de la siguiente forma, poniendo como publica nuestra clase para poder instanciarla:

        
public class Person
{
    public int IdReg { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public bool Gender { get; set; }
    public string Country { get; set; }
    public int Age { get; set; }
    public DateTime Date { get; set; }
    public string Id { get; set; }
}
        
      
Y así la clase completa:



Ahora agregamos la libreria de nuestro propio proyecto para poder usar la clase que acabamos de crear con la instrucción

      
using SqlServerInsertDataTable;
      
    

11_ssidt


Ahora declaramos un metodo con el cual agregaremos a una lista los datos que insertaremos en la base de datos, como este es un ejemplo utilizaremos datos dentro del metodo, pero puedes utilizar cualquier fuente de datos que tu dispongas, lo mas común es que sea por medio de un archivo de texto, te dejo el link por si necesitas leer datos de un archivo de texto.



Una vez terminada la declaración de los objetos que serán insertados en nuestra base de datos, nos regresamos a nuestro metodo Main y aqui realizamos las declaraciones correspondientes para mandar a llenar la lista y despues las instrucciones para insertar los datos en la base de datos.

Primero declararemos el query con la instrucción insert y colocaremos cada una de las columnas que conforman la tabla , despues los valores que pasan como argumentos, si nos fijamos los valores estan como @arg que el @ indica que son valores que cambian y arg solo es indicativo de nomenclatura que son argumentos, a continuación declaramos la instrucción que configura hacia donde sera ejecutado, despues los parametros de la tabla con cada uno de los campos y sus valores correspondientes y para finalizar la instrucción que ejecutara la operación previamente declarada con el nombre de insert_query.

Todo esto será una iteración de valores por cada uno que se encuentre en nuestra lista, que sera iterados por la instrucción foreach, esto se visualiza de forma más clara en la siguiente imagen:

Recordar siempre cerrar la conexión de la base de datos una vez terminado de realizar las operaciones pertinentes, con la siguiente instrucción:

    
sqlCommand.Connection.CLose();
    
  

Ahora abriremos nuestro Sql Server Management y nos conectaremos a la base de datos en la cual insertaremos los datos.



Una vez dentro de la base de datos abrimos la tabla donde queremos insertar los datos previamente declarados en nuestra aplicación de C# en mi caso es Person.



Es hora de probar nuestra aplicación, ponemos un punto de interrupción en la instrucción sqlCommand.ExecuteNonQuery();.



Ejecutamos el programa con la tecla F5, se detendra en el punto de interrupción, presionamos F11 para realizar la ejecución de nuestra aplicación paso a paso, al presionarla no debe mandar ningún error, verificamos en nuestra base de datos y es exitosa la inserción.



Referencias