Professional Documents
Culture Documents
Contenido
1. Introducción
2. Una Base de Datos de Ejemplo
3. Construyendo una Interfaz Gráfica
4. Leyendo la Imagen
5. Conclusión
1. Introducción
En este artículo cubriremos el proceso de leer una imagen de una base de datos de SQL Server, basándonos
en un ejemplo de un pequeño catálogo de 'Productos'.
El almacenamiento de imágenes en bases de datos no suele ser la mejor solución para el tratamiento de
imágenes en las aplicaciones enlazadas a datos; sin embargo, en algunos casos es necesaria esta práctica
cuando se desea aprovechar las capacidades del SGBD que se haya elegido. Ahora veremos la forma de leer
una imagen desde una base de datos SQL Server que ha sido guardada, tal como se describe en el artículo
'Almacenar una imagen en una base de datos'.
Principio de la página
Para este ejemplo usaremos la misma base de datos y tabla que se usó en el artículo 'Almacenar una imagen
en una base de datos'. La definición es la siguiente:
Principio de la página
Construiremos una pequeña interfaz gráfica que nos servirá para obtener los datos de los productos, entre
ellos, la imagen. El aspecto del formulario será el que muestra la Figura 2:
Figura 2. Volver al texto.
Principio de la página
4. Leyendo la Imagen
Para leer los datos del registro (incluyendo la imagen) de la base de datos en base a la clave ingresada en el
campo 'Clave del producto', extraeremos la información al hacer clic sobre el botón Buscar y usando el
siguiente código:
// Añadiendo el parámetro
da.SelectCommand.Parameters.Add("@id", System.Data.SqlDbType.Int);
// Estableciendo el valor del parámetro
da.SelectCommand.Parameters["@id"].Value = int.Parse(idBox.Text);
// Se recuperan los datos
da.Fill(ds, "products");
Examinaremos este código a continuación; primero se crea un objeto DataSet en el cual se colocarán los
datos después de traerlos de la base de datos; después se crea un objeto SqlDataAdapter con la consulta
(SELECT) como primer parámetro y la cadena de conexión, como segundo. Se añade un parámetro a la
colección de parámetros del comando 'SelectCommand' y se establece su valor. Seguidamente, se ejecuta la
consulta para extraer los datos de la base de datos; en la sentencia if se prueba si se encontró el registro,
en caso contrario muestra un mensaje. Si se lo encuentra, se establecen las propiedades de los controles
con los datos recuperados incluyendo la imagen; en este punto lo que se hace es usar un byte[ ] para
referenciar los datos, a partir de este arreglo crear un flujo a memoria, un MemoryStream, y entonces usar
el método estático de la clase Image, Image.FromStream(...), mediante el cual se construirá la imagen a
partir del MemoryStream.
El resultado al ejecutar este programa y hacer clic sobre el botón buscar con 'Clave de producto' igual a 1, se
muestra en la Figura 3:
Figura 3. Volver al texto.
Principio de la página
5. Conclusión