Foros del Web » Programación para mayores de 30 ;) » .NET »

Guardar y cargar Campo Imagine con sql y VB.net

Estas en el tema de Guardar y cargar Campo Imagine con sql y VB.net en el foro de .NET en Foros del Web. Ola... espero que esten muy bien... en mi formulario tengo un picturebox que me trae una imagen desde cualquier ruta al formulario... yo quisiera saber ...
  #1 (permalink)  
Antiguo 13/03/2012, 14:28
Avatar de jhodmar  
Fecha de Ingreso: febrero-2012
Ubicación: Medellin
Mensajes: 52
Antigüedad: 12 años, 2 meses
Puntos: 1
Pregunta Guardar y cargar Campo Imagine con sql y VB.net

Ola...
espero que esten muy bien...
en mi formulario tengo un picturebox que me trae una imagen desde cualquier ruta al formulario...

yo quisiera saber como guardar la imagen en un campo imagine en sql server2008 a traves de Visual Basic 2010 ulti....
y luego cargarla nuevamente al formulario

es que intento pasandole los parametros pero me vota error
Código:
ObjScdCommand.Parameters.Add(New SqlParameter("@Caracteristica", SqlDbType.Imagine))
ObjScdCommand.Parameters.Add(New SqlParameter("@ImgFoto", SqlDbType.Image))
ObjScdCommand.Parameters("@ImgFoto = Cmp_ImgImgFoto")
en donde Cmp_ImgImgFoto es la foto en tipo byte
pero me da el error
"Debe asignarse un acceso de propiedad a la propiedad o utilizar su valo."

guardar la ruta no me llama mucho la atencion ... quiero es guarde en si la imagen.. se que eso agranda enormemente la BD pero quiero realmente llevar la imagen
Lez agradezco enormemente!!!
  #2 (permalink)  
Antiguo 14/03/2012, 07:42
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Guardar y cargar Campo Imagine con sql y VB.net

Hola jhodmar, como guardas los bytes en tu variable Cmp_ImgImgFoto?. Saludos!.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #3 (permalink)  
Antiguo 14/03/2012, 08:48
Avatar de jhodmar  
Fecha de Ingreso: febrero-2012
Ubicación: Medellin
Mensajes: 52
Antigüedad: 12 años, 2 meses
Puntos: 1
De acuerdo Respuesta: Guardar y cargar Campo Imagine con sql y VB.net

Ola Aquaventus....

bueno ya he avanzado un poco en este tema y si logro guardar mi imagen en BD

En un boton llamado "bntGuardarImagenBD" tengo este codigo
Cita:
'Guardar imagen en la bd, es mejor realizarlo con sqlClient y con parámetros @ o con procedimiento almacenado
Dim cnn As New OleDbConnection(cadenaConexion)
Dim curFileName As String = ""

Try
Dim openD As OpenFileDialog = New OpenFileDialog
openD.Filter = "JPG(*.jpg)|*.jpg|PNG(*.png)|*.png|GIF(*… *.Png, *.Gif, *.Tiff, *.Jpeg, *.Bmp)|*.Jpg; *.Png; *.Gif; *.Tiff; *.Jpeg; *.Bmp|Todos|*.*"
Dim filtro As String = openD.Filter
openD.Title = "Archivo de Imagen"
If openD.ShowDialog() = Windows.Forms.DialogResult.OK Then
curFileName = openD.FileName
Else
Exit Sub
End If

Dim fsImage As FileStream
fsImage = New FileStream(curFileName, FileMode.Open)
Me.pbImage.Image = Image.FromStream(fsImage)
Dim ms As New MemoryStream
Me.pbImage.Image.Save(ms, Me.pbImage.Image.RawFormat)
Dim arrImage() As Byte = ms.GetBuffer

Dim cmd As New OleDbCommand("update Imagenes set ParaImagen = ?", cnn)
cnn.Open()
With cmd
.Parameters.Add(New OleDbParameter("@img", OleDbType.VarBinary, arrImage.Length)).Value = arrImage
.ExecuteNonQuery()
End With
Catch ex As Exception
MsgBox(ex.Message)
Finally
cnn.Close()
End Try
End Sub
NOta: en la linea ( Dim cmd As New OleDbCommand("update Imagenes set ParaImagen = ?", cnn))
le mando ? por que si asigno directamente el objeto como tal me vota error

posteriormente quiero volver a cargarla dependiendo de un filtro traer la imagen correspondiente aun no lo he logrado!!! mas que cargarlo es cuestion de logica aplica a mi funcionamiento...

Escucho Sugerencias, correcciones o mejoras a mi codigo!!!

como esta realmente la imagen en BD:
(0xFFD8FFE000104A46494600010201000000000000FFE0001 C4........) y muchisimos caracteres mas!!!

Te agradezco cualquier Ayuda!!
  #4 (permalink)  
Antiguo 14/03/2012, 08:49
Avatar de jhodmar  
Fecha de Ingreso: febrero-2012
Ubicación: Medellin
Mensajes: 52
Antigüedad: 12 años, 2 meses
Puntos: 1
Respuesta: Guardar y cargar Campo Imagine con sql y VB.net

Bueno este es un nuevo codigo... y remplaza al primero ...
  #5 (permalink)  
Antiguo 15/03/2012, 09:17
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Guardar y cargar Campo Imagine con sql y VB.net

Hola jhodmar, disculpa la demora... estaba en otros asuntos. Tu listado lo debes hacer normal, como una consulta cualquiera. Claro que obviamente vas a ver en tu celda en la parte de imagen que dice si mas no recuerdo Byte[]. Si quieres mostrar en un pictureBox la imagen al seleccionar una fila de la grilla, solo es colocar este codigo :

Te lo paso en c#
Código C:
Ver original
  1. //Convierto a bytes el valor que arroja la consulta
  2.                 byte[] barrImg = (byte[])(e.Row.Cells[4].Value);
  3.                 //Hago una lectura Stream del arreglo de bytes
  4.                 MemoryStream ms = new MemoryStream(barrImg);
  5.                 //Paso lo leido a una imagen
  6.                 pic1.Image = Image.FromStream(ms);

En vb.net si mas no me equivoco es así :
Código vb:
Ver original
  1. 'Convierto a bytes el valor que arroja la consulta
  2.    Dim barrImg As Byte() = DirectCast(e.Row.Cells(4).Value, Byte())
  3.     'Hago una lectura Stream del arreglo de bytes
  4.    Dim ms As New MemoryStream(barrImg)
  5.     'Paso lo leido a una imagen
  6.    TuPictureBox.Image = Image.FromStream(ms)

Saludos!.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #6 (permalink)  
Antiguo 15/03/2012, 09:55
Avatar de jhodmar  
Fecha de Ingreso: febrero-2012
Ubicación: Medellin
Mensajes: 52
Antigüedad: 12 años, 2 meses
Puntos: 1
De acuerdo Respuesta: Guardar y cargar Campo Imagine con sql y VB.net

Ok... Amigo Muchisimas Gracias... por la ayuda..

le implemetaré después al código (y ver que tal me funca!!)
si después tengo alguna duda.. se la hare saber..
al igual le puedo pasar el proyecto y un backup de la BD...

Buen dia!!!
  #7 (permalink)  
Antiguo 15/03/2012, 09:58
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Guardar y cargar Campo Imagine con sql y VB.net

De nada jhodmar, cualquier problema hazmelo saber. Saludos!.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net

Etiquetas: sql, visual, campos
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 22:02.