CLR: .Net / Mono / Boo / Otros CLR > VB .NET
Grabar Imagenes En Access Desde Vb.net
(1/1)
curiosopcg:
H :D ola a todos como estan.
reciabn un cordial saludo el motivo de este mensaje es con el fin de solicitarles ayuda de forma urgente, ya que estoy tratando de guardar y recuperar imágenes en una tabla de access enviada desde un formulario echo en VB.Net si alguien me puede ayudar con esto o indicarme algun link donde puedo consular esto le esteré muy agradecido.
AkBaEiLn:
Que tal yo te puedo ayudar es sencillo bueno puedes hacerlo de dos formas una es guardando la ruta de la imagen que quieres guardar, esto es recomendable debido a que posiblemente si vas a manejar una gran cantidad de informacion tal ves access no logre soportar en busquedas y actualizacion una rapidez consistente en fin la otra es el guardar la imagen como varBinary o en su defecto en longvarBinary en Access bueno para poder hacerlo puedes crear en tu base de datos un campo de valor image o en su defecto para access 2003 sera el de elemento ole
bueno hecho esto pasemos a codigo de Visual Basic.Net y sirve para C# y C++ solo se necesita cambiar el codigo a su respectivo lenguaje bien pasemos a el codigo:
(Para mi mi picturebox se llama picfoto)
primero declaramos un MemoryStream
Dim ms As New MemoryStream()
depues salvamos la imagen dentro de mi memorystrean en formato origen o RawFormat
picfoto.Image.Save(ms, picfoto.Image.RawFormat)
despues se declara una variable Byte y guardamos lo que esta en mi MemoryStream
Dim imagenbit() As Byte = ms.GetBuffer
por Ultimo cerramos nuestro memory stream
ms.Close()
bien ahora ya convertimos nuesta imagen a un tipo de datos que Access,SQL
puede entender y lo podemos guardar, es decir, mandamos a guardar nuestro
imagenbit()
bueno espero que te ayude esto sino puedes consultame a mi mail
suerte
;)
AkBaEiLn:
uuups no recorde que cambien querias accesar a la imagen desde la base de datos lo siento pero es en si el mismo proceso pero de forma inversa veamos
declaramos una variable de byte y
convertimos el dato que deamos recuperar pero lo cambiamos de tipo a byte por supuesto de la sig manera
Dim image() as byte = CType(dstopo.Tables(0).Rows(i)("foto"), Byte())
yo utilice en este caso un dataset(dstopo) debido a que es lo que necesitaba en ese momento.
despues de esto ya tenemos nuestro elemento de imagen ("foto") en forma de byte luego lo asignamos a un memorystream de la sig manera
Dim ms As New MemoryStream(image)
por ultimo el memory stream ya lo podemos asignar a un picturebox
PictureBox1.image = PictureBox1.FromStream(ms)
y listo aparecera la imagen
bien suerte
bye
Navegación
Ir a la versión completa