Leer datos de una tabla alojada en SqlServer 2019 a un programa de consola C#

Fecha de Publicación: 2021-05-21

Introducción

En este ejercicio obtendremos los datos de una tabla de datos en Sql Server en un programa de consola de C#



Requisitos

  • Sql Server 2019
  • Visual Studio 2019



Resultado

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





Codigo Fuente

Descargar

Ejercicio

Doy por supuesto que ya cuentas con tu proyecto creado, en mi caso el proyecto se llama GetDataFromSqlServer, entonces partiendo de este punto, agregamos las siguientes referencias:.

  • System.Data
  • System.Data.SqlClient



Agregamos nuestra cadena de conexión a nuestro App.config.


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



Agregamos una nueva clase, que se llama Person




  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; }
    }

  

Agregamos la referencia de System.Configuration.





Agregamos el siguiente metodo para hacer la conexión a la base de datos.


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;
}



Bien, ya teniendo lo basico para poder conectarnos a la base de datos procedemos a declarar una lista de tipo Person, donde alojaremos nuestros datos una vez que hayamos hecho la consulta a la base de datos, despues declaramos un objeto tipo SqlCommand que nos servira para realizar la consulta a la base de datos, lo anterior lo agregamos en metodo Main con el siguiente codigo:


List lst = new List();
SqlCommand sqlCommand = new SqlCommand();

Así mismo declaramos en el mismo metodo Main un bloque try catch con su respectivo finally donde declaramos un cierre de la conexión a la base de datos siempre que se termine de ejecutar codigo en el bloque. Para terminar configuraremos el catch para recibir cualquier excepción que se produzca en la ejecución, quedando de la siguiente forma:



Las siguientes instrucciones son las que nos permiten realizar la consulta en la base de datos, la primera realiza la configuración de la conexión, la segunda declara que ocuparemos instrucciones SQL directas en texto y la tercera como es obvio es la consulta que realizaremos a la base de datos y finalmente la cuarta linea es la que realizara la ejecución de la instrucción en la base de datos devolviendo el resultado en un SqlDataReader.


sqlCommand.Connection = OpenDB();
sqlCommand.CommandType = CommandType.Text;
sqlCommand.CommandText = "SELECT * FROM PERSON";

SqlDataReader reader = sqlCommand.ExecuteReader();


Una vez realizada la ejecución de la instruccción y verificando que el objeto SqlDataReader con la instrucción HasRows contiene valores, procederemos a leerlos con la instruccción while(read.Read()) y llenando un objeto tipo Person por cada linea devuelta y agregandola a la lista antes declarada.



Para finalizar ejecutamos el programa obteniendo algo similar a la siguiente imagen:.





Referencias