Mostra imágenes desde una tabla

26/07/2006 - 10:14 por Eugenio.Net | Informe spam
Tengo una tabla clientes con un campo llamado foto.
He visto que en SQL server hay un campo llamado image pero no sé si es
aconsejable usarla.

Quisiera que cada vez que el usuario quiera ver su cliente pueda hacer clic
y ver la foto.
Cuál método me recomiendan??

muchas gracias.

Preguntas similare

Leer las respuestas

#1 Carlos Sacristán
26/07/2006 - 11:20 | Informe spam
Es más una pregunta para el foro de programación (depende del lenguaje
que uses) que de base de datos...


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Eugenio.Net" escribió en el mensaje
news:
Tengo una tabla clientes con un campo llamado foto.
He visto que en SQL server hay un campo llamado image pero no sé si es
aconsejable usarla.

Quisiera que cada vez que el usuario quiera ver su cliente pueda hacer


clic
y ver la foto.
Cuál método me recomiendan??

muchas gracias.


Respuesta Responder a este mensaje
#2 Pedro López-Belmonte
26/07/2006 - 19:10 | Informe spam
El tipo de dato image de SQL Server sirve para almacenar datos binarios con
una longitud máxima de 2GB. Por tanto, sirve para almacenar imágenes, pero
también videos, documentos, etc... (que no te confunda el nombre.)

En todo caso, ese sería el tipo de dato adecuado para lo que tu quieres, a
no ser que sepas fehacientemente que el tamaño de las imágenes nunca supera
los 8000 bytes de longitud. En tal caso, puedes utilizar el tipo de dato
VARBINARY().

La otra parte de la respuesta la voy a poner en otro post que también
enviaré al grupo de C#, pq, tal y como dice Carlos Sacristán, corresponde al
foro de programación.


Saludos,
Pedro López-Belmonte Eraso
MCAD, MCT
(quitaestoparaenviar)


"Eugenio.Net" wrote:

Tengo una tabla clientes con un campo llamado foto.
He visto que en SQL server hay un campo llamado image pero no sé si es
aconsejable usarla.

Quisiera que cada vez que el usuario quiera ver su cliente pueda hacer clic
y ver la foto.
Cuál método me recomiendan??

muchas gracias.



Respuesta Responder a este mensaje
#3 Pedro López-Belmonte
26/07/2006 - 19:27 | Informe spam
Para poder mostrar la imagen correspondiente a cada cliente, debes leer el
contenido del campo foto, que será un array de bytes. Ese array lo conviertes
al formato de imagen adecuado, y lo puedes mostrar en tu aplicación.

El código podría ser algo así:

SqlConnection con = new SqlConnection();
con.ConnectionString = ""; // Aquí va la cadena de conexión.

SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "SELECT foto FROM clientes WHERE id_cliente=@idClt";

// Añadimos el parámetro con el id del cliente, que habremos asignado
previamente a la variable de tipo int "idCliente".
cmd.Parameters.Add(new SqlParameter("@idClt", SqlDbType.Int)). Value =
idCliente;

// Recuperamos el array de bytes.
byte[] foto = new byte[];
con.Open();
SqlDataReader datos = cmd.ExecuteReader();
foto = (byte[])datos.GetValue(0);
con.Close();

// Convertimos el array de bytes en una imagen.
MemoryStream mem = new MemoryStream();
mem.Read(foto, 0, foto.Length);

Image img = Image.FromStream(mem);



Si tienes alguna duda sobre el código, dímelo.

Pedro López-Belmonte Eraso
MCAD, MCT
(quitaestoparaenviar)


"Eugenio.Net" wrote:

Tengo una tabla clientes con un campo llamado foto.
He visto que en SQL server hay un campo llamado image pero no sé si es
aconsejable usarla.

Quisiera que cada vez que el usuario quiera ver su cliente pueda hacer clic
y ver la foto.
Cuál método me recomiendan??

muchas gracias.



Respuesta Responder a este mensaje
#4 Eugenio.Net
27/07/2006 - 08:39 | Informe spam
Muchas gracias por su tiempo...
Lo trateré de hacer

"Pedro López-Belmonte" (quitaestoparaenviar)> wrote
in message news:
Para poder mostrar la imagen correspondiente a cada cliente, debes leer el
contenido del campo foto, que será un array de bytes. Ese array lo
conviertes
al formato de imagen adecuado, y lo puedes mostrar en tu aplicación.

El código podría ser algo así:

SqlConnection con = new SqlConnection();
con.ConnectionString = ""; // Aquí va la cadena de conexión.

SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "SELECT foto FROM clientes WHERE id_cliente=@idClt";

// Añadimos el parámetro con el id del cliente, que habremos asignado
previamente a la variable de tipo int "idCliente".
cmd.Parameters.Add(new SqlParameter("@idClt", SqlDbType.Int)). Value > idCliente;

// Recuperamos el array de bytes.
byte[] foto = new byte[];
con.Open();
SqlDataReader datos = cmd.ExecuteReader();
foto = (byte[])datos.GetValue(0);
con.Close();

// Convertimos el array de bytes en una imagen.
MemoryStream mem = new MemoryStream();
mem.Read(foto, 0, foto.Length);

Image img = Image.FromStream(mem);



Si tienes alguna duda sobre el código, dímelo.

Pedro López-Belmonte Eraso
MCAD, MCT
(quitaestoparaenviar)


"Eugenio.Net" wrote:

Tengo una tabla clientes con un campo llamado foto.
He visto que en SQL server hay un campo llamado image pero no sé si es
aconsejable usarla.

Quisiera que cada vez que el usuario quiera ver su cliente pueda hacer
clic
y ver la foto.
Cuál método me recomiendan??

muchas gracias.



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida