Autor
|
Tema: Guardar Imagen en base de datos. (c#) (Leído 71,792 veces)
|
Hartigan
Desconectado
Mensajes: 310
|
Ya probé el código de escritura que usas, funciona bien, ahora, yo creo que el problema que tienes esta en la lectura, o carga de data . Específicamente akí: foreach (DataRow myRow in data_table.Rows) { img = (byte[])myRow["imagen"]; this.textBox1.Text = img[0].ToString() + " " + img[1].ToString() + " " + img[2].ToString() + " " + img[3].ToString(); }
En donde estas recorriendo un datatable que supuestamente debería tener un solo registro. Si por casualidad te vienen dos vas a mostrar la imagen que no es, o pueede que sea hasta data corrupta que tengas en un registro mientras hacías las pruebas. y por eso te da error. Entonces, añadres un brake en el foreach, cosa que es mala práctica, o lo haces de ésta manera: if(data_table.Rows.Count>0) { DataRow myRow = data_table.Rows[0]; img = (byte[])myRow["imagen"]; this.textBox1.Text = img[0].ToString() + " " + img[1].ToString() + " " + img[2].ToString() + " " + img[3].ToString(); }
Entonces el código que yo tengo para guardar está bien??? jejej gracias por probarlo. Aun así cambiaré las cosas que me habeis comentado. Voy a probar a cambiar el código de lectura a ver si me funciona con lo que me has dicho. Saludos , ahora os comento.
|
|
|
En línea
|
|
|
|
[D4N93R]
Wiki
Desconectado
Mensajes: 1.646
My software never has bugs. Its just features!
|
Ok, perfecto, esperamos a ver como te va.
|
|
|
En línea
|
|
|
|
Hartigan
Desconectado
Mensajes: 310
|
Ok, perfecto, esperamos a ver como te va.
Nada, no funciona. sigue sin leer bien la imágen...
|
|
|
En línea
|
|
|
|
[D4N93R]
Wiki
Desconectado
Mensajes: 1.646
My software never has bugs. Its just features!
|
Borra toda la data y creala de nuevo.
|
|
|
En línea
|
|
|
|
43H4FH44H45H4CH49H56H45H
Wiki
Desconectado
Mensajes: 502
|
Me parece que estas guardando img como si fuera un string entre ' ', debes suprimirlas, osea solo guardas: INSERT INTO contactos (nombre,imagen) VALUES ('Juan',img);
|
|
|
En línea
|
-R IP :0100 -A 100 2826:0100 MOV AH,09 2826:0102 MOV DX,109 2826:0105 INT 21 2826:0105 MOV AH,08 2826:0105 INT 21 2826:0107 INT 20 2826:0109 DB 'MI NICK ES CODELIVE.$' 2826:0127 -R BX :0000 -R CX :20 -N CODELIVE.COM -W
|
|
|
[D4N93R]
Wiki
Desconectado
Mensajes: 1.646
My software never has bugs. Its just features!
|
En efecto, ese es un problema, ya que si no mal recuerdo cuando ejecutas eso se envía a la base de datos algo asi:
0xFFD8FFE000104A46494600010101006000600000FFE1005A.. etc
Por lo que tiene que ser así y no texto..
Saludos
|
|
|
En línea
|
|
|
|
Hartigan
Desconectado
Mensajes: 310
|
Me parece que estas guardando img como si fuera un string entre ' ', debes suprimirlas, osea solo guardas: INSERT INTO contactos (nombre,imagen) VALUES ('Juan',img);
me da el siguiente error haciendolo como dices: El nombre "img" no es válido en este contexto. Las expresiones válidas son constantes, expresiones de constantes y, en algunos contextos, variables. No se permiten nombres de columna. y lo he hecho así: SqlCommand cmd = new SqlCommand("INSERT INTO contactos(apodo,imagen) VALUES('litos',img)", conexion); Creo me doy por vencido...
|
|
|
En línea
|
|
|
|
43H4FH44H45H4CH49H56H45H
Wiki
Desconectado
Mensajes: 502
|
osea usabas '" + img + "'
haslo asi: " + img + "
|
|
|
En línea
|
-R IP :0100 -A 100 2826:0100 MOV AH,09 2826:0102 MOV DX,109 2826:0105 INT 21 2826:0105 MOV AH,08 2826:0105 INT 21 2826:0107 INT 20 2826:0109 DB 'MI NICK ES CODELIVE.$' 2826:0127 -R BX :0000 -R CX :20 -N CODELIVE.COM -W
|
|
|
Hartigan
Desconectado
Mensajes: 310
|
osea usabas '" + img + "'
haslo asi: " + img + "
También he probado así, y como te he puesto en el post anterior. De las 2 formas y me sigue fallando. Como me estás diciendo ahora me pasaba lo mismo de siempre, que me dice que el valor no es válido. Y añadiendo solo la imágen y un string me da el error que te he puesto arriba... y no será cosa del sql??? pruebo con mysql???
|
|
|
En línea
|
|
|
|
raul338
Desconectado
Mensajes: 2.633
La sonrisa es la mejor forma de afrontar las cosas
|
Me parece que estas guardando img como si fuera un string entre ' ', debes suprimirlas, osea solo guardas: INSERT INTO contactos (nombre,imagen) VALUES ('Juan',img);
Esta mal porque no puedes transformar un array a texto asi de simple INSERT INTO contactos (nombre,imagen) VALUES ('Juan',img);
Desde C# se convierte a INSERT INTO contactos (nombre,imagen) VALUES ('Juan',System.Array);
ese es el problema, no se como se maneja el tipo de datos image en sql por codigo, pero suponiendo que tienes que poner todos los bytes.... seria algo asi string sql = "INSERT INTO contactos (nombre,imagen) values ('Juan',"; sql += System.Text.Encoding.Ascii.GetString(img, 0, img.Length); sql += ");";
Espero que esto ayude algo
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
>Guardar base de datos
Bases de Datos
|
mapers
|
7
|
10,159
|
12 Mayo 2011, 08:58 am
por mapers
|
|
|
Guardar imagen sin tener ruta de archivo en una base datos.
.NET (C#, VB.NET, ASP)
|
enterariel
|
2
|
3,956
|
10 Agosto 2012, 22:04 pm
por enterariel
|
|
|
guardar campos ocultos en base de datos
Desarrollo Web
|
jecavi20
|
2
|
2,853
|
6 Julio 2013, 00:05 am
por jecavi20
|
|
|
Guardar Datos de una encuesta en Base de Datos con SQL Server
Programación C/C++
|
arodrigu3zg
|
0
|
2,262
|
20 Abril 2018, 23:06 pm
por arodrigu3zg
|
|
|
Guardar respuesta múltiple en base de datos
PHP
|
welchu
|
2
|
2,824
|
14 Agosto 2018, 19:06 pm
por andystefano
|
|