Geeks•ms
Todo lo que los geeks de Windows y .Net tienen que contar
Sigue a Plain Concepts en Twitter

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

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

Archivado en: [Editar categorías]

Anteriormente, explicamos 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:

 

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

Nos vemos en la parte 3!

Comentarios Recientes

No se ha escrito ningún comentario para esta página.
El mayor evento de comunidad sobre Windows Azure