See Image from Northwind

01/03/2010 - 12:16 por alberto | Informe spam
How can i see in a picturebox an image stored in the northwind database?
I'd like to show the field "photo" of the table Employee of Northwind. I
don't find a method of the static class Convert.

Thank you.

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
01/03/2010 - 12:52 | Informe spam
"alberto" wrote in message
news:
How can i see in a picturebox an image stored in the northwind database?
I'd like to show the field "photo" of the table Employee of Northwind. I
don't find a method of the static class Convert.



Si lo estás haciendo por código (no mediante databinding), lo que hay
que hacer es asignarle un objeto del tipo System.Drawing.Image a la
propiedad Image del PictureBox. Ese objeto de tipo Image puedes construirlo
mediante el método estático Image.FromStream, pasándole un Stream que apunte
a los datos binarios que figuran en el campo "photo" de la base de datos. La
forma de conseguir el Stream depende de cómo estés leyendo desde la base de
datos. Si ya has leido los datos y los tienes en un array de bytes, puedes
construir un MemoryStream pasándole como argumento el array de bytes. Con el
campo photo de Northwind no hay problema porque son fotos relativamente
pequeñas (unas decenas de kilobytes la más grande). Si necesitas hacerlo con
imágenes más grandes, puede que te convenga llamar al método GetSqlBytes del
SqlDataReader (suponiendo que estás leyendo desde la tabla con un
SqlDataReader), y luego usar la propiedad Stream del objeto SqlBytes. De
esta forma, te evitas usar un buffer intermedio para el array de bytes en
memoria.
Respuesta Responder a este mensaje
#2 Alberto
01/03/2010 - 16:40 | Informe spam
El 01/03/2010 12:52, Alberto Poblacion escribió:
"alberto" wrote in message
news:
How can i see in a picturebox an image stored in the northwind
database? I'd like to show the field "photo" of the table Employee of
Northwind. I don't find a method of the static class Convert.



Si lo estás haciendo por código (no mediante databinding), lo que hay
que hacer es asignarle un objeto del tipo System.Drawing.Image a la
propiedad Image del PictureBox. Ese objeto de tipo Image puedes
construirlo mediante el método estático Image.FromStream, pasándole un
Stream que apunte a los datos binarios que figuran en el campo "photo"
de la base de datos. La forma de conseguir el Stream depende de cómo
estés leyendo desde la base de datos. Si ya has leido los datos y los
tienes en un array de bytes, puedes construir un MemoryStream pasándole
como argumento el array de bytes. Con el campo photo de Northwind no hay
problema porque son fotos relativamente pequeñas (unas decenas de
kilobytes la más grande). Si necesitas hacerlo con imágenes más grandes,
puede que te convenga llamar al método GetSqlBytes del SqlDataReader
(suponiendo que estás leyendo desde la tabla con un SqlDataReader), y
luego usar la propiedad Stream del objeto SqlBytes. De esta forma, te
evitas usar un buffer intermedio para el array de bytes en memoria.



Gracias.

En primer lugar, pedir perdón por exponer la pregunta en inglés. Me
equivoqué de grupo.

Intenté hacer lo que me indicas pero me da un error. Para obtener la
imagen hago esto:

Image.FromStream(dr.GetSqlBytes(3).Stream)

El tercer campo del SqlDataReader (empezando en 0) es la imagen. La
imagen anterior la envío a un método pero me dice "Parámetro no válido".
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida