Manejando cadenas de conexión en .Net con C#(2/3)

En el post anterior, explicábamos acerca los partes que lleva una cadena de conexión, tanto cuando es autentificada por Windows, así como cuando es autentificada por rol SQL Server.

Bien, pues en este post, nos enfocaremos a ver una forma mucho más eficiente de conectarnos a nuestra base de datos.

En primer lugar, si recordamos el código del post anterior, tenía algo como esto:

   1: try

   2: {

   3:   sqlconnection.Open();

   4:   Console.WriteLine("Conexión Abierta Satisfactoriamente!");

   5: }

   6: catch (Exception ex)

   7: {

   8:   Console.WriteLine("Falló al tratarse de conectar a Base de Datos!");

   9: }

  10: finally

  11: {

  12:   sqlconnection.Close();

  13:   Console.ReadLine();

  14: }

Se podría decir, que este código está bien, sin embargo, existe un problema debido a que no se liberan los recursos una vez cerrada la conexión. Esto mismo hubiera pasado si hubiésemos tenido un sqlcommand.

Para arreglar esto, lo que debemos hacer, es poner el código dentro de un bloque a través de un using, el cual nos permitirá liberar de forma automática los recursos.

El using, es usado de la siguiente manera:

   1: using (SqlConnection sqlconnection = 

   2:         new SqlConnection(miCadenaConexion))

   3: {

   4:   sqlconnection.Open();               

   5: } 

como vez, en esta sección lo  estamos usando como un bloque, define un ámbito donde al final, el objeto automáticamente se destruirá, por eso no es necesario ni siquiera cerrar la conexión. A este código se le puede implementar un try – catch para probar capturar excepciones, pero para comprobar, y veas que no te miento, usaré el siguiente código para revisar el estado de nuestra conexión a la base de datos:

   1: SqlConnection sqlconnection;

   2:  

   3: using (sqlconnection = new SqlConnection(miCadenaConexion))

   4: {

   5:   sqlconnection.Open();

   6:   if (sqlconnection.State == System.Data.ConnectionState.Open)

   7:   {

   8:     Console.WriteLine("Conexión abierta");

   9:     Console.Read();

  10:   }

  11: }

  12:  

  13: if (sqlconnection.State == System.Data.ConnectionState.Open)

  14: {

  15:   Console.WriteLine("La conexión sigue abierta!");

  16:   Console.Read();

  17: }

  18: else

  19: {

  20:   Console.WriteLine("La conexión se ha cerrado satisfactoriamente! :)");

  21:   Console.Read();

  22: }

Como vez, lo que hacemos es primero comprobar el estado de la conexión dentro del primer if, y posteriormente lo volvemos a comprobar una vez saliéndonos del bloque using, con lo cual obtenemos:

image

Es una práctica recomendada, y que mejora mucho la forma de programar 🙂

Salu2

Héctor Uriel Pérez Rojas

5 comentarios en “Manejando cadenas de conexión en .Net con C#(2/3)”

  1. hola amigo he visto tu pagina web y esta que mola ose bacan,
    mira por favor si tienes algun ejemplo de programacion c#.net pero echo en tres capas por favor te lo agradeceria un mundo

    saludos desde Madrid

  2. gracias por tu blog y pór los conocimientos k dejas en el pero lo k ando buscando yo es una conexion de entre SQL y C# pero con windows aplication me a servido para darme una idea oria no lo e intentado pork la makina en k trabajaba el cargador se descompuso y estoy acondicionando otra makina solo kiero saber si es igual sino es asi me podras mandar un ejemplo

Deja un comentario

Tu dirección de correo electrónico no será publicada.