elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Guardar Imagen en base de datos. (c#)
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: 1 2 3 4 5 [6] 7 8 Ir Abajo Respuesta Imprimir
Autor Tema: Guardar Imagen en base de datos. (c#)  (Leído 71,835 veces)
[D4N93R]
Wiki

Desconectado Desconectado

Mensajes: 1.646


My software never has bugs. Its just features!


Ver Perfil WWW
Re: Guardar Imagen en base de datos. (c#)
« Respuesta #50 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.


En línea

Hartigan


Desconectado Desconectado

Mensajes: 310


Ver Perfil
Re: Guardar Imagen en base de datos. (c#)
« Respuesta #51 en: 16 Junio 2010, 01:19 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??????);'.


 : :¬¬


En línea

raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Guardar Imagen en base de datos. (c#)
« Respuesta #52 en: 16 Junio 2010, 01:34 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.
Eso no resuelve el problema!! :xD :xD
:xD si con eso se resuelve, mira este codigo
Inserting and Retrieving images from SQL Server Database using C#

Citar
Hartigan, eso es porque yo no se usar el tipo Image de sql

mirando aca, http://msdn.microsoft.com/en-us/library/ms187993.aspx dicen que proximamente sacaran al tipo image :P y que en su lugar hay que usar varbinary. Aunque sigo sin encontrar como se debe usar
« Última modificación: 16 Junio 2010, 01:37 am por raul338 » En línea

[D4N93R]
Wiki

Desconectado Desconectado

Mensajes: 1.646


My software never has bugs. Its just features!


Ver Perfil WWW
Re: Guardar Imagen en base de datos. (c#)
« Respuesta #53 en: 16 Junio 2010, 01:39 am »

hehe viste raul xD es que yo lo probé y le mandé el código a Hartigan, creo que está en la página 2 xD
En línea

Hartigan


Desconectado Desconectado

Mensajes: 310


Ver Perfil
Re: Guardar Imagen en base de datos. (c#)
« Respuesta #54 en: 16 Junio 2010, 01:46 am »

Vale voy a probar con ese código. Si con eso ya no funciona. entonces que le den. loool.
En línea

[D4N93R]
Wiki

Desconectado Desconectado

Mensajes: 1.646


My software never has bugs. Its just features!


Ver Perfil WWW
Re: Guardar Imagen en base de datos. (c#)
« Respuesta #55 en: 16 Junio 2010, 02:27 am »

Haha no te rindas xD
En línea

43H4FH44H45H4CH49H56H45H
Wiki

Desconectado Desconectado

Mensajes: 502



Ver Perfil
Re: Guardar Imagen en base de datos. (c#)
« Respuesta #56 en: 16 Junio 2010, 04:10 am »

@Hartigan

Hice el ejemplo similar al tuyo a la rapida solo para ver el error, al quitar las comillas simples de img indica el error y referencia el modo de hacerlo (no prestes atencion al button1):

Código
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using System.Data.SqlClient;
  10. using System.IO;
  11.  
  12. namespace WindowsFormsApplication1
  13. {
  14.    public partial class Form1 : Form
  15.    {
  16.        public Form1()
  17.        {
  18.            InitializeComponent();
  19.        }
  20.  
  21.        private void button1_Click(object sender, EventArgs e)
  22.        {
  23.            System.IO.Stream derecho = new System.IO.MemoryStream();
  24.            this.pictureBox1.Image.Save(derecho, System.Drawing.Imaging.ImageFormat.Jpeg);
  25.            byte[] imgDerecha = new byte[derecho.Length];
  26.            derecho.Position = 0;
  27.            derecho.Read(imgDerecha, 0, System.Convert.ToInt32(derecho.Length));
  28.            derecho.Close();
  29.            string cadena_conexion = @"Server= (local)\SQLEXPRESS; DataBase = agenda; Integrated Security = yes;";
  30.            SqlConnection conexion = null;
  31.            conexion = new SqlConnection(cadena_conexion);
  32.            String sentenciaSQL = "insert into contactos (apodo) values('" + imgDerecha + "')";
  33.            SqlDataAdapter data_adapter = new SqlDataAdapter(sentenciaSQL, conexion);
  34.            conexion = new SqlConnection(cadena_conexion);
  35.            conexion.Open();
  36.            SqlCommand cmd = new SqlCommand(sentenciaSQL, conexion);
  37.            if ((1 != cmd.ExecuteNonQuery()))
  38.            {
  39.                MessageBox.Show("Se ha producido un error al acceder a la fuente de datos", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
  40.            }
  41.        }
  42.  
  43.        private void button2_Click(object sender, EventArgs e)
  44.        {
  45.            System.IO.Stream derecho = new System.IO.MemoryStream();
  46.            this.pictureBox1.Image.Save(derecho, System.Drawing.Imaging.ImageFormat.Jpeg);
  47.            byte[] imgDerecha = new byte[derecho.Length];
  48.            derecho.Position = 0;
  49.            derecho.Read(imgDerecha, 0, System.Convert.ToInt32(derecho.Length));
  50.            derecho.Close();
  51.            string cadena_conexion = @"Server= (local)\SQLEXPRESS; DataBase = agenda; Integrated Security = yes;";
  52.            SqlConnection conexion = null;
  53.            conexion = new SqlConnection(cadena_conexion);
  54.            String sentenciaSQL = "insert into contactos (apodo, imagen) values('"+ textBox1.Text + "',@img)";
  55.            SqlDataAdapter data_adapter = new SqlDataAdapter(sentenciaSQL, conexion);
  56.            conexion = new SqlConnection(cadena_conexion);
  57.            conexion.Open();
  58.            SqlCommand cmd = new SqlCommand(sentenciaSQL, conexion);
  59.            cmd.Parameters.AddWithValue("@img", imgDerecha);
  60.            if ((1 != cmd.ExecuteNonQuery()))
  61.            {
  62.                MessageBox.Show("Se ha producido un error al acceder a la fuente de datos", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
  63.            }
  64.        }
  65.  
  66.        private void button3_Click(object sender, EventArgs e)
  67.        {
  68.            string cadena_conexion = @"Server= (local)\SQLEXPRESS; DataBase = agenda; Integrated Security = yes;";
  69.            byte[] img = new byte[0];
  70.            string[] datos = new string[33];
  71.            String sentenciaSQL = "SELECT * FROM contactos WHERE apodo = 'pru1'";
  72.            SqlConnection conexion = null;
  73.            conexion = new SqlConnection(cadena_conexion);
  74.            SqlDataAdapter data_adapter = new SqlDataAdapter(sentenciaSQL, conexion);
  75.            DataTable data_table = new DataTable();
  76.            conexion.Open();
  77.            data_adapter.Fill(data_table);
  78.            textBox1.Text = data_table.Rows[0][0].ToString();
  79.            img = (byte[]) data_table.Rows[0][1];
  80.            int ArraySize = new int();
  81.            ArraySize = img.GetUpperBound(0);
  82.            System.IO.Stream derec = new System.IO.MemoryStream();
  83.            derec.Write(img, 0, img.Length);
  84.            pictureBox2.Image = Image.FromStream(derec);
  85.        }
  86.    }
  87. }
  88.  

Solo presta atencion al button 2 y 3 el 1 es para @raul338

Me parece que estas guardando img como si fuera un string entre ' ', debes suprimirlas, osea solo guardas:

Código
  1. INSERT INTO contactos (nombre,imagen)
  2. VALUES
  3. ('Juan',img);

Esta mal porque no puedes transformar un array a texto asi de simple

Código
  1. INSERT INTO contactos (nombre,imagen)
  2. VALUES
  3. ('Juan',img);
Desde C# se convierte a
Código
  1. INSERT INTO contactos (nombre,imagen)
  2. VALUES
  3. ('Juan',System.Array);

En realidad seria asi:
Código
  1. INSERT INTO contactos (nombre,imagen)
  2. VALUES
  3. ('Juan','System.Byte[]');


Y no se que entiendes por texto, pero mira el code del primer boton almaceno en una columna varchar(50) (apodo) el resultado del uso de las comillas simples, si no es texto entonces que es?????  :-\  

Y te dejo una imagen, si no quieres comprobarlos por ti mismo  :laugh:

« Última modificación: 16 Junio 2010, 04:12 am por 43H4FH44H45H4CH49H56H45H » 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
raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Guardar Imagen en base de datos. (c#)
« Respuesta #57 en: 16 Junio 2010, 05:59 am »

Código
  1. //..........
  2. private void button1_Click(object sender, EventArgs e)
  3. {
  4.        //.........
  5.        String sentenciaSQL = "insert into contactos (apodo) values('" + imgDerecha + "')";
  6.        //.........
  7. }
  8.  

Solo presta atencion al button 2 y 3 el 1 es para @raul338
En realidad seria asi:
Código
  1. INSERT INTO contactos (nombre,imagen)
  2. VALUES
  3. ('Juan','System.Byte[]');


Y no se que entiendes por texto, pero mira el code del primer boton almaceno en una columna varchar(50) (apodo) el resultado del uso de las comillas simples, si no es texto entonces que es?????  :-\ 

Y te dejo una imagen, si no quieres comprobarlos por ti mismo  :laugh:

Es un reto? :xD

1º System.Byte[], bueno tengo la documentacion del .net framework en mi cabeza :xD era lo que recordaba, vos te pensas que abro el visual studio a probar?? no! lo saco de lo que se!

2º Cambiaste el codigo, si guarda el string, pero lo que el intentaba hacer era guardar la imagen como si fuera texto (para colmo sin comillas) cosa que no es lo que estas proponiendo (boton2). Estas proponiendo la misma solucion que pusimos yo y danger, usar command con parametros

Asi que cerra la .... (con cariño jajaja :xD)
En línea

43H4FH44H45H4CH49H56H45H
Wiki

Desconectado Desconectado

Mensajes: 502



Ver Perfil
Re: Guardar Imagen en base de datos. (c#)
« Respuesta #58 en: 16 Junio 2010, 14:49 pm »

Es un reto? :xD
Si  :xD

2º Cambiaste el codigo, si guarda el string, pero lo que el intentaba hacer era guardar la imagen como si fuera texto (para colmo sin comillas) cosa que no es lo que estas proponiendo (boton2). Estas proponiendo la misma solucion que pusimos yo y danger, usar command con parametros

Estas completamente mal, no podria guardar como si fuera texto sin el uso de comillas :rolleyes: y me doy cuenta lo que tratas de decir, pero lo estas diciendo mal, supongo por una falta de conceptos basicos.

En realidad el visual studio te da la solucion al quitar las comillas simples ;D lo que ahorra mucho tiempo en lugar de estar haciendo teorias y buscando enlaces que a la final no sabes si solucionan el problema, y peor confundiendo un system.array con otro diferente que a la final causan mas confusión    :P
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
raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Guardar Imagen en base de datos. (c#)
« Respuesta #59 en: 16 Junio 2010, 16:00 pm »

1º que nada System.Byte[] es un array!!! :xD no me crucifiques simplemente por ejemplificar.

2º Me faltan Concepto basicos? Cuales?! :xD

Yo dije que no se como se usa el image de sql porque sinceramente nunca lo use y nunca lo usare. Asi que supuse que se guardaba como archivo binario puro, transformado en texto. Por eso use el GetString y sin las comillas. Luego tu saltaste a decir una gran ovbiedad: que no se puede guardar texto sin comillas :¬¬ cuando en realidad intento guardar datos binarios. Ademas... el primero que tiro esa idea de guardar sin las comillas fuiste vos

La solucion es definitiva. Usar command con parametros (que no recuerdo quien sugirio a principios del hilo y lo pasamos de largo) cosa que es lo que los 3 terminamos proponiendo igual
« Última modificación: 16 Junio 2010, 16:14 pm por raul338 » En línea

Páginas: 1 2 3 4 5 [6] 7 8 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
>Guardar base de datos
Bases de Datos
mapers 7 10,164 Último mensaje 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,957 Último mensaje 10 Agosto 2012, 22:04 pm
por enterariel
guardar campos ocultos en base de datos
Desarrollo Web
jecavi20 2 2,857 Último mensaje 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,265 Último mensaje 20 Abril 2018, 23:06 pm
por arodrigu3zg
Guardar respuesta múltiple en base de datos
PHP
welchu 2 2,829 Último mensaje 14 Agosto 2018, 19:06 pm
por andystefano
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines