C sharp - El parámetro no es válido.

 
Vista:
sin imagen de perfil
Val: 14
Ha aumentado su posición en 7 puestos en C sharp (en relación al último mes)
Gráfica de C sharp

El parámetro no es válido.

Publicado por edwin (14 intervenciones) el 16/09/2016 02:58:51
cordial saludo

tengo un problema al tratar de traer una imagen de la base de datos y mostrarla en un picturebox, me sale este error de parámetro no valido, espero que me puedan hace el favor de ayudarme. de antemano gracias por las respuestas
Sin-titulo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class ConvertirImagen
    {
 
        public byte[] imageToByteArray(System.Drawing.Image imageIn)
        {
            MemoryStream ms = new MemoryStream();
            imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
            byte[] byteArrayIn = ms.ToArray();
            return ms.ToArray();
        }
 
 
        public Image byteArrayToImage(byte[] byteArrayIn)
        {
            MemoryStream ms = new MemoryStream(byteArrayIn);
            return Image.FromStream(ms);
 
        }

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
private void btn_consulta_Click_1(object sender, EventArgs e)
        {
            string cedula = "SELECT nonCompleto,empresa,imagen FROM usuario WHERE id_usuario = '" + Convert.ToInt32(txt_cedula_RV.Text) + "' ";
 
            MySqlConnection con = conn.conexion;
            MySqlCommand comando = new MySqlCommand(cedula, con);
            conn.AbrirConexion();
 
            MySqlDataReader reader = comando.ExecuteReader();
 
            if (reader.Read() == true)
            {
                txt_NombreC_RV.Text = reader["nonCompleto"].ToString();
                txt_Empresa_RV.Text = reader["empresa"].ToString();
                //pic_RV.Image = conv.byteArrayToImage((byte[])reader["imagen"]);   no esta en uso             
                byte[] datos = (byte[])reader["imagen"];
                pic_RV.Image = conv.byteArrayToImage(datos);
 
            }
            else
            {
                MessageBox.Show("Numero NO Registrado");
            }
            conn.CerrarConexion();
        }
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 356
Plata
Ha disminuido 1 puesto en C sharp (en relación al último mes)
Gráfica de C sharp

El parámetro no es válido.

Publicado por Miguel (160 intervenciones) el 16/09/2016 03:42:51
Hola,
Verifica si tus datos son correctos (File.WriteAllBytes("image.jpg", byteArrayIn))...

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 14
Ha aumentado su posición en 7 puestos en C sharp (en relación al último mes)
Gráfica de C sharp

El parámetro no es válido.

Publicado por edwin (14 intervenciones) el 16/09/2016 03:49:21
Cordial saludo Miguel

Puedes hacer el favor de ser más explícito y de indicarme que debo hacer con lo de verificar los datos o donde debo usar la línea de código que me enviaste. Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 356
Plata
Ha disminuido 1 puesto en C sharp (en relación al último mes)
Gráfica de C sharp

El parámetro no es válido.

Publicado por Miguel (160 intervenciones) el 16/09/2016 04:45:02
Umm disculpa, no me expliqué bien... Te estaba comentando que para verificar sería mejor si creabas un archivo (tipo imagen) con los datos que ahora de devuelve la base de datos. De igual manera, a continuación te dejo otra opción (similar):

1
2
3
4
5
6
7
public Image byteArrayToImage(byte[] byteArrayIn)
{
        MemoryStream ms = new MemoryStream(byteArrayIn,0,byteArrayIn.Length);
        ms.Write(byteArrayIn, 0, byteArrayIn.Length);
 
        return Image.FromStream(ms,true);
}


Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 14
Ha aumentado su posición en 7 puestos en C sharp (en relación al último mes)
Gráfica de C sharp

El parámetro no es válido.

Publicado por edwin (14 intervenciones) el 16/09/2016 14:41:57
gracias miguel por la respuesta, le comento el error persiste adjunto imagen. quedo atento
Sin-titulo1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 356
Plata
Ha disminuido 1 puesto en C sharp (en relación al último mes)
Gráfica de C sharp

El parámetro no es válido.

Publicado por Miguel (160 intervenciones) el 16/09/2016 23:46:06
Qué raro... ¿Ya intentaste lo que te comenté al principio (guardar el array de bytes en un archivo de imagen para verificar)?....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 14
Ha aumentado su posición en 7 puestos en C sharp (en relación al último mes)
Gráfica de C sharp

El parámetro no es válido.

Publicado por edwin (14 intervenciones) el 16/09/2016 23:58:48
cordial saludo miguel

me han estado ayudando por otra parte y me dicen que tengo un error en el INSERT cuando guardo la imagen, me recomiendan que parametrize la sentencia, lo cual estoy intentando hacer pero como soy novato me dio otro error, no se si me puedas colaborar:

así tengo el método
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public static void RegistroUsuario(int id_usuario, string nonCompleto, string empresa, string direccion, string telefono, string telefono_alt, string tipo_sangre, byte[] imagen)
{
    using (MySqlConnection conn = new MySqlConnection("connection string"))
 
    {
        conn.Open();
 
        string query = @"INSERT INTO usuario (id_usuario, nonCompleto, empresa, direccion, telefono, telefono_alt, tipo_sangre, imagen)
                 VALUES (?id_usuario, ?nonCompleto, ?empresa, ?direccion, ?telefono, ?telefono_alt, ?tipo_sangre, ?imagen)";
 
        MySqlCommand cmd = new MySqlCommand(query, conn);
 
        cmd.Parameters.AddWithValue("?id_usuario", id_usuario);
        cmd.Parameters.AddWithValue("?nonCompleto", nonCompleto);
        cmd.Parameters.AddWithValue("?empresa", empresa);
        cmd.Parameters.AddWithValue("?direccion", direccion);
        cmd.Parameters.AddWithValue("?telefono", telefono);
        cmd.Parameters.AddWithValue("?telefono_alt", telefono_alt);
        cmd.Parameters.AddWithValue("?tipo_sangre", tipo_sangre);
 
        MySqlParameter imageParam = cmd.Parameters.Add("?imagen", MySqlDbType.MediumBlob);
        imageParam.Value = imagen;
 
        cmd.ExecuteNonQuery();
    }
}

y acá donde intento guardar la información me sale esto?


Sin-titulo4
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Javier
Val: 96
Bronce
Ha mantenido su posición en C sharp (en relación al último mes)
Gráfica de C sharp

El parámetro no es válido.

Publicado por Javier (40 intervenciones) el 17/09/2016 01:29:47
No se si ya lo resolviste pero te paso un pequeño codigo que utilizo para guardar y mostrar imagenes en un picturebox.

Para guardar:
1
2
3
MemoryStream ms = new MemoryStream();
picturebox.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
byte[] imagen = ms.ToArray();

Se guarda "ms"

Para Mostrar:
1
2
3
4
byte[] imagen= Tu Select;
MemoryStream ms = new MemoryStream(imagen);
TuPictureBox.Image = Image.FromStream(ms);
TuPictureBox.SizeMode = PictureBoxSizeMode.StretchImage;

El campo en sql que utilizo es tipo Image o Varbinary(max)

Espero te sirva.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 14
Ha aumentado su posición en 7 puestos en C sharp (en relación al último mes)
Gráfica de C sharp

El parámetro no es válido.

Publicado por edwin (14 intervenciones) el 17/09/2016 15:26:20
cordial saludo amigo javier

gracias por el aporte, en el momento tengo ya un error diferente, pero muchas gracias por su respuesta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 356
Plata
Ha disminuido 1 puesto en C sharp (en relación al último mes)
Gráfica de C sharp

El parámetro no es válido.

Publicado por Miguel (160 intervenciones) el 17/09/2016 07:45:49
Tu función 'RegistroUsuario' solicita como parámetros las propiedades de un usuario, y tú le estás pasando una conexión y la clase con los datos del usuario...

Otra cosa, ¿qué tipo de campo estás usando para guardar la imagen?...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 14
Ha aumentado su posición en 7 puestos en C sharp (en relación al último mes)
Gráfica de C sharp

El parámetro no es válido.

Publicado por edwin (14 intervenciones) el 17/09/2016 15:29:32
para guardar la imagen en mysql tiene un tipo mediumblob y en c#

1
public byte[] imagen { get; set; }
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 14
Ha aumentado su posición en 7 puestos en C sharp (en relación al último mes)
Gráfica de C sharp

El parámetro no es válido.

Publicado por edwin (14 intervenciones) el 18/09/2016 00:55:59
cordial saludo amigos
en el momento ya pude solucionar el error, el insert inicialmente estaba mal ya que se estaba guardando mal la imagen por el uso del strigFormat, había que parametrizar e indicar los tipos de datos que se iban a guardar en este caso cadena de caracteres e imagen, les agradezco por su ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

El parámetro no es válido.

Publicado por Andrea (1 intervención) el 03/05/2018 20:00:35
Y entonces como quedó tu codigo?, si me puedes ayudar, me sale ese mismo error :/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar