none
Deleted

Respuestas

  • "Myriam Colio" escribió:

    > Tengo el problema de que solo me modifica una vez, quiero seguir modificando
    > otras imagenes y me dice Intento de leer o escribir en la memoria protegida.
    > A menudo, esto indica que hay otra memoria dañada.

    Ese mensaje de error tiene toda la pinta de que estás queriendo modificar, sobrescribir o eliminar físicamente un archivo *.jpg que actualmente está siendo utilizado por la propiedad Image del control PictureBox.

    > My.Computer.FileSystem.CopyFile(foto1, ruta, True)

    No has comentado si es al querer ejecutar esa línea donde se produce el error. Si es así, deberías de saber que estás sobrescribiendo cualquier archivo que ya exista en la ruta especificada (el valor de la variable foto1), y si ese archivo *.jpg, *.bmp, *.png es el que actualmente se está mostrando en el control PictureBox, digo yo que primero tendrás que eliminar la imagen del control PictureBox para que posteriormente puedas sobrescribir el archivo físicamente:

        If (Not PictureBox1.Image Is Nothing) Then
            PictureBox1.Image.Dispose()
            PictureBox1.Image = Nothing
        End If
    
        My.Computer.FileSystem.CopyFile(foto1, ruta, True)
    


    Y si no es aquí donde obtienes el mensaje de error, yo al menos te estaría enormemente agradecido que indicaras en qué parte de tu código es donde obtienes el error.

    Por cierto:

    > foto1 = PictureBox1.ImageLocation.ToString
    > cmd.Parameters.AddWithValue("@Foto", ruta)
    > foto1 = PictureBox1.ImageLocation.ToString

    ¿No es suficiente con asignarle una sola vez el valor a la variable foto1?

     
       cmd.Parameters.AddWithValue("@Foto", ruta)    
       foto1 = PictureBox1.ImageLocation

    La propiedad ImageLocation del control PictureBox devuelve un valor alfanumérico (String), por lo que no es necesario que llames al método ToString().


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.

    martes, 23 de agosto de 2016 12:02
    Moderador

Todas las respuestas

  • Todo el código que has presentado es código gestionado de .Net, por lo que por sí solo nunca debería producir el error de "intento de acceso a memoria protegida". Este error solo se produce cuando llamas a código no-gestionado. En este caso, el único código no-gestionado que se ve implicado es el del driver de la base de datos. La sospecha sería que estás usando un driver defectuoso o mal configurado. Revisa qué es lo que tienes en la cadena de conexión y cuál es el driver que estás usando; si es posible, actualízalo o cámbialo (por ejemplo, prueba a usar el ACE si es que estás usando el JET).
    martes, 23 de agosto de 2016 6:25
  • "Myriam Colio" escribió:

    > Tengo el problema de que solo me modifica una vez, quiero seguir modificando
    > otras imagenes y me dice Intento de leer o escribir en la memoria protegida.
    > A menudo, esto indica que hay otra memoria dañada.

    Ese mensaje de error tiene toda la pinta de que estás queriendo modificar, sobrescribir o eliminar físicamente un archivo *.jpg que actualmente está siendo utilizado por la propiedad Image del control PictureBox.

    > My.Computer.FileSystem.CopyFile(foto1, ruta, True)

    No has comentado si es al querer ejecutar esa línea donde se produce el error. Si es así, deberías de saber que estás sobrescribiendo cualquier archivo que ya exista en la ruta especificada (el valor de la variable foto1), y si ese archivo *.jpg, *.bmp, *.png es el que actualmente se está mostrando en el control PictureBox, digo yo que primero tendrás que eliminar la imagen del control PictureBox para que posteriormente puedas sobrescribir el archivo físicamente:

        If (Not PictureBox1.Image Is Nothing) Then
            PictureBox1.Image.Dispose()
            PictureBox1.Image = Nothing
        End If
    
        My.Computer.FileSystem.CopyFile(foto1, ruta, True)
    


    Y si no es aquí donde obtienes el mensaje de error, yo al menos te estaría enormemente agradecido que indicaras en qué parte de tu código es donde obtienes el error.

    Por cierto:

    > foto1 = PictureBox1.ImageLocation.ToString
    > cmd.Parameters.AddWithValue("@Foto", ruta)
    > foto1 = PictureBox1.ImageLocation.ToString

    ¿No es suficiente con asignarle una sola vez el valor a la variable foto1?

     
       cmd.Parameters.AddWithValue("@Foto", ruta)    
       foto1 = PictureBox1.ImageLocation

    La propiedad ImageLocation del control PictureBox devuelve un valor alfanumérico (String), por lo que no es necesario que llames al método ToString().


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.

    martes, 23 de agosto de 2016 12:02
    Moderador