Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Hartigan

#121
Gracias por las respuestas y recomendaciones pero os comento mi situación., Es la primera vez que programo en c# y ando un poco perdido, ya que en la uni solo me han enseñado c... entonces no se muy bien como usar los objetos. Sí la teoría más o menos la se, o se cosas de lo que he leido por ahí, de curso de c# que tiene guille, pero en la practica real ando un poco pez. si me ayudais un ppoco con algun ejemplo o me aclarais un poco más empezaría de nuevo gustosamente porque se que así no está del todo bien.

Salu2 y gracias.
#122
EDITO:

Problema: Problema al actualizar la base de datos habiendo cambiado la imagen almacenada.

Solución: El error estaba en la sentencia sql:

yo tenía esto:
Código (csharp) [Seleccionar]

... datos[34] + "',imagen = '@img' WHERE apodo = 'litos001'";



y la solución es quitar las comillas del @img de manera que queda así:
Código (csharp) [Seleccionar]

...datos[34] + "',imagen = @img WHERE apodo = 'litos001'";


Espero que ahora quede claro

Salu2.
#123
YEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHHHHHHHHHHHHHHH!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


YEEEEEEEEEEEAAAAAAAAAAAAAAAAAAHHHHHHHHHHHHHHH!!!!

Por fin!!!!, lo he conseguido. El úlgimo error que me daba era por una tontería, que había quitado el InitialiceComponent(); xDDD


Muchas gracias chicos, de verdad, muchisimas gracias!!!!!, sin vosotros no lo habría conseguido. Sois los mejores!!!!!!!!!!!!!!!!!!!!!!!!!


Al final he utilizado el código que me ha puesto: 43H4FH44H45H4CH49H56H45H y me ha funcionado perfectamente. El fallo estaba en que no se guardaba bien la imagen y por tanto no la leia bien. Asíque na. Tema solucionado.

Gracias de nuevo y un abrazo ;)
#124
Lo primero muchas gracias a todos de nuevo..

43H4FH44H45H4CH49H56H45H , el código que me pusistes antes a ti te funciona???

esque a mi me da el siguiente error: "Referencia a objeto no establecida como instancia de un objeto."

En concreto en las lineas:

Código (csharp) [Seleccionar]

label_Sobrenombre.Text = data_table.Rows[0][0].ToString();
...
pictureBox_FotoImagen.Image = Image.FromStream(derec);


De todos modos inspeccionando la imágen parece que sí la toma bien, asíque solo me faltaría resolver eso... y luego ya estaría todo.

Salu2.
#125
Vale voy a probar con ese código. Si con eso ya no funciona. entonces que le den. loool.
#126
Cita de: D4N93R en 16 Junio 2010, 01:11 AM
Más facil, crea el sqlCommand, y el INSERT en vez de poner todo ahí, en los valores pones @elnombre, es decir, parámetros, de esta forma creas los parameters y se los pones. El código de ejemplo está en el link que te pasé en este mismo post..

Hazlo así, que no te falla.

NO entiendo!!!. xDD

Raul, no me funciona lo que me has dicho me sale esto:
Sintaxis incorrecta cerca de '?'.
'.      ??. ..        ........      \a\b   
??.? .           .. }   .    !1A  Qa\a' no es un nombre válido, porque contiene un carácter NULL o un carácter Unicode no válido.
El identificador que comienza por '[<?8TA?k??G?|w?K???ea?2H\aa?.? ???|G(?1?7^?  R?a p?w$`W??O????.?r?I?<?9??F1?d?U????Kuu=?[?????88 ????[l?;)+D?s? ????wL?xQ????????' es demasiado largo. La longitud máxima es 128.
El identificador que comienza por '=[??Q??nc??V?5 y ?P={Q????? '?????@.'M????(?? ?#?q????J??6i-?0????-??n???H???k?????UH??>g_???_3?U??B? W?? ?d?3??4 1??&? Ms3???w?' es demasiado largo. La longitud máxima es 128.
El identificador que comienza por 'YN?'x  .?b? ????o?W?y? ??h??????? ??? ??T??w #?Mq???V?H&) ?????}??H?Gr ? ;??? A? ??? K?  ?
sJ???j? ?\a? ???#??:b?`r7????? ?i? ??l' es demasiado largo. La longitud máxima es 128.
El identificador que comienza por '?6'??O??x ??k? ?2?%???H???.?#? ?? ?'? ??? ? ??~ ?^2?E`'? ???????D{ ?\U&??F?RuK_????  ????  ?? ?yt;?;3??n 8<?_RXw ???:4Z???o?$0??' es demasiado largo. La longitud máxima es 128.
El identificador que comienza por '?e?|? ?
?O?????  Mp".-? ?? ??H? b3?????|4??r?[?1??\a? :??q??UE%?.NR?>??@???Gyv _2x??? ?S  ?? ?)u/ ? ???u  ???+=.?3???<? ??\aVc??==' es demasiado largo. La longitud máxima es 128.
El identificador que comienza por '??5??
? ????   _?@=?=?!?????~6 ???'?? ?r??z? * ?
??S??6 { ?^}??8t;?2<y1???? ?(? ???b?=???=o??X???rX???%?r  z?
LIm!??????_?Y }???!' es demasiado largo. La longitud máxima es 128.
Falta la comilla de cierre después de la cadena de caracteres 'i???q^k?/Y?$???????<?????f?????9-+3 I$?{?e8?lpT??????);'.


: :¬¬
#127
Cita de: 43H4FH44H45H4CH49H56H45H en 15 Junio 2010, 20:08 PM
osea usabas
Código (sql) [Seleccionar]
'" + img + "'
haslo asi:
Código (sql) [Seleccionar]
" + 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???
#128
Cita de: 43H4FH44H45H4CH49H56H45H en 15 Junio 2010, 19:34 PM
Me parece que estas guardando img como si fuera un string entre ' ', debes suprimirlas, osea solo guardas:

Código (sql) [Seleccionar]
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...

:-(
#129
Cita de: D4N93R en 15 Junio 2010, 18:52 PM
Ok, perfecto, esperamos a ver como te va.

Nada, no funciona. sigue sin leer bien la imágen...
#130
Cita de: D4N93R en 15 Junio 2010, 18:38 PM
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í:

Código (csharp) [Seleccionar]

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:

Código (csharp) [Seleccionar]

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.