lunes, 24 de junio de 2013

PostgresSQL con C#

Amigos, esta vez les voy a dejar un aporte de una clase hecha en C# para conectarnos a una base de datos PostgreSQL, respetando el patrón de diseño Singleton. Antes de entrar a más detalles vamos a definir que es un patrón de diseño y sobre todo que es un patrón de diseño Singleton.

Patrón de diseño: Es una solución que se aplica a problemas comunes que suceden en el diseño de software y cuenta con características como: Probada, Genérica y Probada.

Brindan soluciones de como resolver problemas que han aparecido anteriormente y que responden a un cierto patrón.

Patrón de diseño Singleton: Garantiza la existencia de una única instancia para una clase y proporciona un punto de acceso global a dicha instancia.

La clase que implementa el patrón Singleton debe contener un método público y estático que crea una instancia del objeto siempre y cuando no exista ninguna creada. Además el constructor debe ser privado para no crear más instancias de la clase.

Ahora si vamos a entrar a explicar nuestra clase de CBD (siglas que significan Conexión a Base de Datos)

1) Vamos a usar las DLL Npgsql.dll y Mono.Security.dll
2) Tener instalado la última versión de PostgresSQL, en mi casi tengo instalado la versión 9.2.4
3) Visual Studio 2010
4) Explicando el código:

Primero: tenemos nuestras variables, las cuales son:

  • connection: cadena de conexión.
  • connect: es un objeto de conexión hacia la fuente de datos.
  • comando: es una nueva instancia de la clase NpgsqlCommand, la cual hace directamente la consulta a la base de datos.
  • instance: es la variable que contendrá la instancia de la clase CBD.

Segundo: tenemos nuestro constructor con el modificador privado para no poder crear instancias de la clase.


Tercero: debemos crear nuestro método estático, el cual es el único que crea instancias de la clase CBD.


Cuarto: también tenemos nuestro métodos que ejecutan transacciones y devuelven datos.
  • transaction: realiza una sola transacción por vez. Devuelve un valor booleano, true si fue realizado y false si no lo realizó.
  • multipleTransaction: realiza múltiples transacciones por vez. Devuelve un valor booleano, true si fue realizado todo correctamente, false si no lo realizó. Cabe comentar que maneja las sentencias begin, commit y rollback para manejar las múltiples transacciones.
  • muestraDatosDT: devuelve un DataTable con los datos de la consulta.
  • muestraDatosDS: devuelve un DataSet con los datos de la consulta.
También les dejo un ejemplo completo usando cada método. Lo único que necesitan hacer es crear una base de datos de nombre ejemplo y una tabla persona con los campos idpersona, nombre, apellidos, fecha.

Para descargar el ejemplo completo presionar el enlace aquí.

Espero les haya sido de utilidad, hasta la proxima, su amigo Carlos Zacarías.

Seguidores