Você está na página 1de 19

ALMACENAR IMAGENES EN LA BASE DE DATOS SQL

En determinadas ocasiones, nos surge la necesidad de almacenar imágenes en


algún lado, para la realización de nuestro proyecto.

Por eso y por otra variedad de razones, me he decido generar este post, como
siempre buscando otra forma de aportar a la comunidad.

Lo que vamos a crear en esta oportunidad, es una solución utilizando Visual Studio
como plataforma de desarrollo, C# como lenguaje de programación, y SQL Server
2008 R2 como gestor de Base de Datos, para que nos permita almacenar una
imagen en la BD, como un arreglo de bytes. Por lo que habrá que hacer las
conversiones adecuadas para lograr nuestro objetivo.

Comenzaremos desde la base de datos, creando una pequeña tabla


llamada Empleado. La relevancia de la tabla empleado, es que ocuparemos un
campo llamado Foto, el cual será de tipo Image. El cual nos permitirá almacenar la
foto de cada empleado a registrar.

La tabla quedará con la siguiente estructura:

Cuando ya tengamos preparada nuestra tabla para el ejercicio, nos vamos a trabajar
en Visual Studio.

Como primer paso, será la creación de nuestra solución en blanco en Visual Studio:
Procedemos ahora a crear nuestra capa de Acceso a Datos:

Agregamos el modelo de datos ADO .NET a utilizar:


Configuramos el modelo para generarlo desde la base de datos que creamos al
inicio:

Creamos la nueva conexión hacia la BD:


Luego de eso, prestamos atención a los detalles de la conexión, así como también
tenemos que verificar que la opción de guardar la conexión en el archivo de
configuración de la aplicación esté activada.

Le colocamos el nombre al string de conexión. (Para el ejemplo, he decido dejar el


nombre por defecto).
Como último paso para la generación del modelo desde la base de datos,
simplemente seleccionamos los ítems que queremos importar a nuestro modelo.
Para el caso del ejemplo solamente tenemos una tabla, la cual debemos de activar
el check para que genere la entidad equivalente. No debemos de olvidar activar la
opción de Pluralizar o Singularizar Nombres de los Objetos Generados :
Al finalizar el modelo de datos nos quedará de la siguiente forma:

Luego verificamos la propiedades de la Entidad Empleado. Buscamos y rectificamos


la propiedad llamada Entity Set Name. Le colocamos el valor a la propiedad
como Empleados.
Como siguiente paso, agregamos la clase que nos permitirá establecer la conexión
con la base de datos. En este ejemplo la clase se llamará DBComun.
Al tener lista la clase, primero le cambiamos el modo de acceso a public para poder
acceder a ella desde cualquier parte de la solución. Luego creamos una variable de
tipo estática, la cual será tipo EjemploImagenEntities la cual es la clase
contenedora de nuestro modelo de datos, y por último solo establecemos la
propiedad con el método get para obtener el valor respectivo, para la variable que
acabamos de crear.
Con esto, hemos terminado los componentes necesarios para la capa de acceso a
datos.

Como siguiente paso, crearemos el proyecto que funcionará como proyecto


de Lógica de Negocio.

A continuación, tenemos que agregar un par de referencias para poder comenzar a


programar la clase de lógica.

Primero debemos de agregar la referencia del Proyecto de Acceso a Datos:


Luego agregar la referencia del ensamblado System.Data.Entity.

Cuando trabajamos con Visual Studio 2012, habra que comenzar a trabajar
con Entity Framework 5.0, por lo que para esto necesitaremos agregar la
referencia al ensamblado que lo contiene.

Abrimos el cuadro de diálogo de Agregar Referencia, luego damos clic en el


botón Browsepara ir a buscar el ensamblado en la siguiente ruta:

X:\Carpeta del Proyecto\packages\EntityFramework.5.0.0\lib\net45

Aquí encontraremos el archivo con extensión .dll que necesitamos:


Después de eso, las referencias del proyecto de la capa de lógica de negocio se
verán de esta forma:

Agregamos una clase, que servirá para programar los métodos necesarios.
Como primer paso tendremos que agregar el using respectivo de las referencias
necesarias que ya agregamos al proyecto.

Para el caso serán los using de EjemploImagen.DAL y System.Data.Entity.

Cambiamos el modo de acceso a la clase. Le colocamos public.

Por último agregamos las líneas de código necesarias para el método de Agregar
Empleado.

Ahora ya estamos listos para proceder a crear la interfaz para poder guardar
nuestro empleado con su respectiva foto.

Crearemos un proyecto de tipo WPF:


Lo primero a realizar es agregar las referencias de las capas anteriores hacia la capa
de presentación:

Ahora el ensamblador System.Data.Entity.


También debemos de realizar un paso muy importante dentro de la configuración
de nuestra interfaz.

Si recordamos en la creación del modelo de datos, en el primer paso guardamos un


string de conexión en el archivo de configuración de la capa de acceso a datos.

Lo que habrá que hacer es copiar ese segmento de líneas de configuración que
comprende desde la apertura de la etiqueta <connectionStrings> hasta la etiqueta
de cierre correspondiente </connectionStrings> tal y como se puede apreciar en
la imagen:

En el proyecto de interfaz de usuario editamos el archivo de configuración, para


poder pegar el string de conexión, teniendo cuidado de pegarlo dentro de la
etiqueta <configuration> </configuration>.
Finalmente, el código del archivo de configuración se verá así:

Agregamos una nueva ventana en WPF, la cual nos servirá para poder ingresar la
información necesaria para almacenar a nuestro empleado.

En la estructura del formulario se han utilizado solo controles comunes ( Labels,


TextBox, Buttons, y un Image ).

Al terminar de agregar y acomodar los objetos en el formulario, se verá mas o


menos de la siguiente forma:
Comenzaremos con la programación, haciendo uso de un par de las referencias que
agregamos en pasos anteriores así como también de otras más:

Después de eso, nos tomamos el tiempo para agregar un par de variables e


instancias globales que nos ayudarán en el proceso :
Ahora nos vamos a programar el evento clic del botón examinar, el cuál nos
permitirá ir a traer una foto (en formato JPG) desde cualquier ubicación del equipo,
y colocarla en el Image del formulario, así como también realizar la conversión de la
imagen al arreglo de bytes para almacenarlos en la base de datos.

El código del botón quedará de la siguiente forma:

Ahora nos vamos con el botón de Guardar.

En este botón, simplemente creamos una instancia de la clase Empleado, le


asignamos los valores a dicha instancia y luego mandamos a llamar al método de
Agregar Empleado que está en la clase BL.

El código lucirá de la siguiente forma:


Con esto hemos terminado la construcción de una pequeña parte del proyecto.

Al realizar las pruebas se ve mas o menos así:


Al observar los registros guardados en la base de datos, podremos apreciar que
nuestro registro ha sido almacenado exitosamente.

En los post siguientes veremos como obtener los registros desde la base de datos,
así como también como hacer para modificarlos.

Você também pode gostar