[SOLUCIONADO] Problemas al guardar imágenes a la base de datos

Iniciado por leacim, Octubre 11, 2018, 11:48:23 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Octubre 11, 2018, 11:48:23 PM Ultima modificación: Octubre 12, 2018, 10:57:48 PM por Gabriela
Hola buenas noches
tengo problemas al guardar imagenes a mi base de datos, en lo cual no entiendo muy bien mi problema, lo que tengo aqui es una prueba en el cual quiero guardar NOMBRE, APELLIDO y FOTO....
en la base de datos lo que es FOTO esta como objeto OLE


Octubre 12, 2018, 09:44:40 AM #1 Ultima modificación: Octubre 12, 2018, 10:34:41 AM por solid water
Si vas a la definición de FotoTableAdapter.insert cómo es la definición (o las definiciones)?

Lo digo para que veamos que parámetros está pidiendo la función.
Al parecer no esta esperando un tipo image como tercer parámetro.
Puede ser que el tipo image lo tengas que convertir a array de bytes o algo similar.

Edit me parece que debes convertirlo a byte de arrays, esto que hago en C# deberías hacerlo en No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Código: csharp

byte[] byteArray = imageToByteArray(image);

  public byte[] imageToByteArray(System.Drawing.Image imageIn)
        {
            MemoryStream ms = new MemoryStream();
            imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
            return ms.ToArray();
        }


Saludos,

en inserte el orden es: Nombre, apellido y foto
pero no me deja ingresar foto ya que me pide que este en Matriz de byte
y eso es lo que no se hacer, mil disculpas ya que estoy tratando de aprender de mi parte las cosas
y muchas gracias por tu respues, pero no se como se haria en visual basic

Octubre 12, 2018, 12:41:42 PM #3 Ultima modificación: Octubre 12, 2018, 12:53:36 PM por solid water
Probá así (pone esto antes de la llamada a la función):

Código: vb.net

Dim ms = new MemoryStream()
foto.Save(ms, System.Drawing.Imaging.ImageFormat.Png) ' Use appropriate format here
Dim bytes = ms.ToArray()


y como tercer parámetro le pasas la variable bytes que es ahora tu array de bytes, seguro después cuando haces el select de la base de datos tenes que hacer el camino inverso, pasarlo de array de bytes a image.

Olvide decir que no recuerdo como es el tema de las referencias en VB, en C# para usar stream tenes que hacer un using No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, como no se como es en VB, si no te funciona la línea del MemoryStream ponelo así:

System.IO.MemoryStream

Saludos,

muchas gracias por la ayuda ahora mismo pruebo!!!

MUCHAS GRACIAS...!!!
Me ayudo mucho en solucionar el problema que tenia.