elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Recuperar imagen de BD cargar en Imagelist y mostrar en ListView
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Recuperar imagen de BD cargar en Imagelist y mostrar en ListView  (Leído 5,976 veces)
enterariel

Desconectado Desconectado

Mensajes: 29


Ver Perfil
Recuperar imagen de BD cargar en Imagelist y mostrar en ListView
« en: 10 Agosto 2012, 22:02 pm »

Tengo este código para recuperar imágenes de una bd access.

Código
  1.    Sub RECUPERAR()
  2.        ImageList1 = New ImageList
  3.        ImageList1.ImageSize = New Size(100, 100)
  4.        ImageList1.ColorDepth = ColorDepth.Depth32Bit
  5.  
  6.        LF.LargeImageList = ImageList1
  7.        LF.Items.Clear()
  8.  
  9.        strSQL = "SELECT * FROM juegos"
  10.        Dim daEmp As New OleDbDataAdapter(strSQL, strConexion)
  11.        Dim dtEmp As New DataTable
  12.        daEmp.Fill(dtEmp)
  13.  
  14.        For i = 0 To dtEmp.Rows.Count - 1
  15.  
  16.            Dim img_buffer As Byte()
  17.            img_buffer = DirectCast(dtEmp.Rows(i)("imagen"), Byte())
  18.            Dim img_stream As New MemoryStream(img_buffer, True)
  19.  
  20.            img_stream.Write(img_buffer, 0, img_buffer.Length)
  21.            ImageList1.Images.Add(dtEmp.Rows(i)("id").ToString(), New Bitmap(img_stream))
  22.            img_stream.Close()
  23.  
  24.            Dim item As New ListViewItem(Strings.Left(dtEmp.Rows(i)("titulo").ToString, xTitulo))
  25.            item.SubItems.Add(dtEmp.Rows(i)("plataforma").ToString)
  26.  
  27.            item.ImageKey = dtEmp.Rows(i)("id").ToString
  28.            LF.Items.Add(item)
  29.        Next i
  30.  
  31.    End Sub

Pero me tira este error:



En línea

seba123neo


Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: Recuperar imagen de BD cargar en Imagelist y mostrar en ListView
« Respuesta #1 en: 11 Agosto 2012, 00:30 am »

que raro, pero proba ponerle un valor fijo en ves de sacar el valor del campo id para ver que es lo que esta fallando, igualmente para recorrer el datatable se deberia hacer con un For Each no con un For, por ejemplo:

Código
  1. For Each row As DataRow In dtDataTable.Rows
  2.    strDetail = row("campo1")
  3. Next row

saludos.





En línea

enterariel

Desconectado Desconectado

Mensajes: 29


Ver Perfil
Re: Recuperar imagen de BD cargar en Imagelist y mostrar en ListView
« Respuesta #2 en: 11 Agosto 2012, 02:42 am »

Hice asi y funciona no es el campo id el que esta fallando
Código
  1. imglist.Images.Add(dtEmp.Rows(i)("id").ToString(), Image.FromFile("c:\xxx\4zm.jpg"))

Este es el que falla New Bitmap(img_stream)) alguna idea?
En línea

enterariel

Desconectado Desconectado

Mensajes: 29


Ver Perfil
Re: Recuperar imagen de BD cargar en Imagelist y mostrar en ListView
« Respuesta #3 en: 11 Agosto 2012, 03:40 am »

Ya pille cual es el error seba el ejemplo que me pasaste acá para guardar el contenido del picturebox sin tener el path:

Código
  1.    Sub xSave()
  2.  
  3.        '-------------------ESTE ES EL PROBLEMA-------------------------------------------------------
  4.        Dim xStream As New MemoryStream
  5.        PictureBox1.Image.Save(xStream, System.Drawing.Imaging.ImageFormat.Jpeg)
  6.        Dim breader As New BinaryReader(xStream)
  7.        Dim imgbuffer(xStream.Length) As Byte
  8.        breader.Read(imgbuffer, 0, xStream.Length)
  9.        xStream.Close()
  10.        '----------------------------------------------------------------------------------------------------
  11.  
  12.        strSQL = "INSERT INTO juegos (titulo,imagen) VALUES (@titulo,@imagen)"
  13.        strComando.CommandText = strSQL
  14.        strComando.Connection = strConexion
  15.  
  16.        strComando.Parameters.AddWithValue("@titulo", txtTitulo.Text)
  17.        strComando.Parameters.AddWithValue("@imagen", imgbuffer)
  18.        strComando.ExecuteNonQuery()
  19.        strComando.Dispose()
  20.        MsgBox("Saved")
  21.  
  22.    End Sub

Creo que guarda mal el archivo y al querer abrir ahi se genera el error de este:
Código
  1. ImageList1.Images.Add(dtEmp.Rows(i)("id").ToString(), New Bitmap(img_stream))

Ahora si guardo de esta forma funciona de lujo.

Código
  1.        Dim fsreader As New FileStream("c:\xxx\4zm.jpg", FileMode.Open, FileAccess.Read)
  2.        Dim breader As New BinaryReader(fsreader)
  3.        Dim imgbuffer(fsreader.Length) As Byte
  4.        breader.Read(imgbuffer, 0, fsreader.Length)
  5.        fsreader.Close()
  6.  
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
guardar una imagen en un imagelist permanentemente
Programación Visual Basic
7U15MK 2 2,563 Último mensaje 18 Abril 2006, 00:26 am
por Ironhorse
ListView & ImageList.-
Programación Visual Basic
mdg 4 2,230 Último mensaje 25 Enero 2007, 17:48 pm
por ~~
problema con imagelist y listview
Programación Visual Basic
SRVAM 7 8,353 Último mensaje 27 Agosto 2009, 00:48 am
por SRVAM
Imagelist and Listview
Programación Visual Basic
ntaryl 4 4,710 Último mensaje 24 Noviembre 2009, 22:31 pm
por ntaryl
Mostrar menú al hacer clic en un listview
ASM
.:UND3R:. 5 4,111 Último mensaje 13 Mayo 2013, 03:27 am
por .:UND3R:.
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines