SoloCodigo
CLR: .Net / Mono / Boo / Otros CLR => VB .NET => Mensaje iniciado por: curiosopcg en Sábado 12 de Marzo de 2005, 19:14
-
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.
-
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
;)
-
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