Visual Basic.NET - Memoria insuficiente

 
Vista:
Imágen de perfil de Richard
Val: 184
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Memoria insuficiente

Publicado por Richard (47 intervenciones) el 29/09/2020 05:58:52
Hola a todos, nuevamente por aca en busca de conocimientos experimentados como los de ustedes.

Estoy haciendo una app en vb.net con mysql como DB, en una de las tablas guardo unas imágenes que lo hace bien.
Cuando reviso la tabla, veo las imágenes que se guardaron correctamente, pero cuando trato de traer la imagen, desde mysql, me genera el error MEMORIA INSUFICIENTE. Para este proceso convierto de binario a imagen. Las imágenes son de aproximadamente 200x 300.

Aun no comprendo el error.

Alguna ayuda.

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Phil Rob
Val: 3.196
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Memoria insuficiente

Publicado por Phil Rob (937 intervenciones) el 29/09/2020 07:12:06
Hola
No he tenido la repuesta....
Quizá que si envias los codigos del process de convierto con la linea del error, una ayuda puede venir
:D)))
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Richard
Val: 184
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Memoria insuficiente

Publicado por Richard (47 intervenciones) el 29/09/2020 14:46:22
Hola, esto lo que tengo
Aclaro que esta funcion la llamo desde otros form y con normalidad me muestra la foto de la persona, pero cuando intento llamar desde otro form usando lo mismo, me da el error.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Public Sub MostrarFotoAfiliado(IdeAfiliado As Integer, ByVal PicFoto As PictureBox)
    Dim Sql As String = "select fotafi from sit_afiliados where ideafi=" & IdeAfiliado
    Dim lector As MySqlDataReader
 
    Conectar()
 
    Dim Imag As Byte()
    Dim Comando As New MySqlCommand(Sql, cConn)
 
    lector = Comando.ExecuteReader
    lector.Read()
 
 
    Try
 
        If lector("fotafi") Is DBNull.Value Then
            PicFoto.BackgroundImage = Image.FromFile(CPATH & "trabajador.png")
        Else
            Imag = lector("fotafi")
            PicFoto.BackgroundImage = Bytes_Imagen(Imag)
        End If
    Catch ex As Exception
 
    End Try
 
 
    lector.Dispose()
    Desconectar()
 
End Sub


La funcion de Bytes a imagen

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Public Function Bytes_Imagen(ByVal Imagen As Byte()) As Image
    Try
        If Not Imagen Is Nothing Then
            Dim Bin As New MemoryStream(Imagen)
 
            Bin.Dispose()
 
            Return Image.FromStream(Bin)
        Else
            Return Nothing
        End If
    Catch ex As Exception
        Return Nothing
    End Try
End Function
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Richard
Val: 184
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Memoria insuficiente

Publicado por Richard (47 intervenciones) el 29/09/2020 15:04:27
Gracias por la ayuda.

Logre ver el error y lo resolvi.

Saludos cordiales
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Phil Rob
Val: 3.196
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Memoria insuficiente

Publicado por Phil Rob (937 intervenciones) el 29/09/2020 15:20:00
Hola,

No estoy a la casa y no tengo PC hoy y mañana y te escribo con SmartPhone. Entonces, no puedo te ayudar pero con tu código, otros te ayudaran.

Pero escribo este mensaje por que veo 2 detalles (que pueden tocar la memoria) :

Detalle 1 :
1
2
3
4
Dim lector As MySqlDataReader   ‘ Este escritura es sin NEW
‘ … … …
‘       lector.Dispose ‘No es bien, sin NEW, no Dispose. Para terminar lector, tienes que usar Close
lector.Close()

Detalle 2 :
En la función Bytes_Imagen, existe Bin.Dispose después, Return Imagen.FromStream(Bin), entonces pasas el parametero Nothing, es normal?

Lo siento, no puedo hacer mas …
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Richard
Val: 184
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Memoria insuficiente

Publicado por Richard (47 intervenciones) el 29/09/2020 22:18:39
Es exactamente lo q corregí y ya se solucionó
Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Richard
Val: 184
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Memoria insuficiente

Publicado por Richard (47 intervenciones) el 01/10/2020 16:43:51
Phil Rop.
Una consulta, si puedes ayudar.
Bien, el proceso de traer la imagen de la BD, la convierto de BYT a imagen y muestro el resultado en un picturebox.
Teniendo la DB de manera local, no tengo inconveniente y muestra bien la imagen, el detalle es cuando la conexión a la DB la hago de manera remota (desde un servidor) y traigo la imagen, en el picturebox no me muestra la imagen q espero.
Algo estoy haciendo mal?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Phil Rob
Val: 3.196
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Memoria insuficiente

Publicado por Phil Rob (937 intervenciones) el 01/10/2020 17:24:29
No comprendo ...
Propongo que ejecutas casi la misma consulta con sola diferencia de leer un campos de tipo String.
Si no funciona, entonces debes ver la seguridad del servidor o verificar la ConnectionString.
Pero si funciona, pienso que este debe funcionar para las imágenes...
Y entonces, no tengo solución
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Memoria insuficiente

Publicado por juan carlos mena garcia (3 intervenciones) el 10/10/2020 08:05:56
libera la memoria de las variables de las imagenes
carga una imagen y libera la memoria, carga la otra y lo mismo, etc...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar
Imágen de perfil de Richard
Val: 184
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Memoria insuficiente

Publicado por Richard (47 intervenciones) el 10/10/2020 16:13:58
Gracias por responder, pero se solucionó el tema ese x q tenia un DISPOSE en el lugar incorrecto.


Ahora lo que esta ocurriendo y no logro dar solución.

Tengo 2 DB mysql, una de modo local y la otra en un servidor externo.
Cuando traigo la imagen desde la DB local, no tengo problemas y me muestra la imagen q deseo, pero cuando hago lo mismo desde la DB remota no me muestra la imagen.

Es decir, tengo un formulario de datos de X persona y además de sus datos principales también tengo la foto y esto quiero mostrar ya sea desde la DB local o la remota pero no muestra la foto desde la DB remota, solo muestra los datos.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar