Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

guardar imagen en sql

Estas en el tema de guardar imagen en sql en el foro de SQL Server en Foros del Web. primero kiero saber que me sale mejor si guardar las imagenes en la base de datos o en el disco duro estoy haciendo un programa ...
  #1 (permalink)  
Antiguo 14/05/2011, 05:38
 
Fecha de Ingreso: mayo-2011
Mensajes: 32
Antigüedad: 12 años, 11 meses
Puntos: 1
guardar imagen en sql

primero kiero saber que me sale mejor si guardar las imagenes en la base de datos o en el disco duro estoy haciendo un programa con un opendialog eligo que imagen ira en el backgroundimage del picturebox al iniciar ya tiene una imagen si mando a guardar esa imagen ala base de datos no hay problema pero si la cambio me da un error al kererla guardar

este es el codigo que uso para codificar la imagen

public byte[] codificar(PictureBox p)
{
MemoryStream stream = new MemoryStream();
p.BackgroundImage.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);
byte[] pic = stream.ToArray();

return pic;
}


y para guardarla

Conexion.Open();
SqlCommand Comand = Conexion.CreateCommand();
Comand.CommandText = "use programa insert into usuario(nclave,nusuario,edad,estatura,peso,sexo,av atar)values(" + nclave + "," + nombre + "," + edad + "," + estatura + "," + peso + ",'" + c + "',@pic)";
Comand.Parameters.AddWithValue("@pic", pic);
Comand.ExecuteNonQuery();

Conexion.Close();

por cierto este codigo lo copie de internet y algo que no se si me puedan explicar ya que no solo kiero que corra el programa quiero saber pork y saber que estoy haciendo lo que no entiendo es esto comand.Parameters.AddWithValue("@pic", pic);
pork no se pone solo la variable pic en vez de poner la linea anterior y poner @pic
  #2 (permalink)  
Antiguo 14/05/2011, 23:40
 
Fecha de Ingreso: mayo-2011
Mensajes: 32
Antigüedad: 12 años, 11 meses
Puntos: 1
Respuesta: guardar imagen en sql

disculpen pueden cerrar el tema ya encontre la forma aqui dejo la solucion que encontre por si alguien mas se le llega a presentar este problema

public void codificar(PictureBox p,SqlCommand Comand)
{
MemoryStream stream = new MemoryStream();
p.BackgroundImage.Save(stream, p.BackgroundImage.RawFormat);

Comand.Parameters.Add("@pic", SqlDbType.Image);
Comand.Parameters["@pic"].Value = stream.GetBuffer();
}

de todos modos si pudieran responderme lo anterior de que es mas eficiente guardan en la bd o en el disco

Etiquetas: sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:58.