none
Problema en actualización de registros con pictureBox RRS feed

  • Pregunta

  • Saludos expertos, una nueva consulta. Tengo en un winform el registro de personas, incluyendo entre sus datos una fotografía de cliente. Todo se registra bien, el problema es al realizar una actualización en los datos. al intentar editar un registro, si no se cambia la imagen que se agregó al crearlo no permite la actualización del registro y salta un error indicando que no pudo encontrar la ruta de la imagen. Aquí el codigo que utilizo para la actualización. desde ya aprecio sus aportes y comentarios.

    public void EditEstudiante(string filefoto, int id)
             {
                 cnx.Close();

                 MemoryStream ms = new MemoryStream();
                 FileStream fs = new FileStream(filefoto, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);

                 ms.SetLength(fs.Length);
                 fs.Read(ms.GetBuffer(), 0, (int)fs.Length);

                 byte[] arrImg = ms.GetBuffer();
                 ms.Flush();
                 fs.Close();

                 sql = @"UPDATE Estudiantes SET
                            Est_PrimerNombre=@Est_PrimerNombre, Est_SegundoNombre=@Est_SegundoNombre,
                            Est_PrimerApellido=@Est_PrimerApellido, Est_SegundoApellido=@Est_SegundoApellido,
                            Est_FechaNacimiento=@Est_FechaNacimiento, Est_Edad=@Est_Edad, IdTutor=@IdTutor,
                            IdCurso=@IdCurso, Est_CuotaMensual=@Est_CuotaMensual, IdAnioEscolar=@IdAnioEscolar,
                            Est_NumeroSegSocial=@Est_NumeroSegSocial, Est_NumeroAfiliado=@Est_NumeroAfiliado,
                            IdCompaniaAseguradora=@IdCompaniaAseguradora, Est_Estado=@Est_Estado,Est_Foto=@Est_Foto 
               WHERE IdEstudiante=@id";

                 using (SqlCommand cmd = cnx.CreateCommand())
                 {
                     cnx.Open();

                     cmd.CommandText = sql;
                                      
                     cmd.Parameters.Add("@id", SqlDbType.BigInt).Value = id;
                     cmd.Parameters.Add("@Est_PrimerNombre", SqlDbType.VarChar).Value = txtNombre1.Text;
                     cmd.Parameters.Add("@Est_SegundoNombre", SqlDbType.VarChar).Value = txtNombre2.Text;
                     cmd.Parameters.Add("@Est_PrimerApellido", SqlDbType.VarChar).Value = txtApellido1.Text;
                     cmd.Parameters.Add("@Est_SegundoApellido", SqlDbType.VarChar).Value = txtApellido2.Text;
                     cmd.Parameters.Add("@Est_FechaNacimiento", SqlDbType.DateTime).Value = dtpNacimiento.Text;
                     cmd.Parameters.Add("@Est_Edad", SqlDbType.BigInt).Value = Convert.ToInt32(txtEdad.Text);
                     cmd.Parameters.Add("@IdTutor", SqlDbType.BigInt).Value = Convert.ToInt32(cboTutor.SelectedValue);
                     cmd.Parameters.Add("@IdCurso", SqlDbType.BigInt).Value = Convert.ToInt32(cboCurso.SelectedValue);
                     cmd.Parameters.Add("@Est_CuotaMensual", SqlDbType.Decimal).Value = txtCuotaMensual.Text;
                     cmd.Parameters.Add("@IdAnioEscolar", SqlDbType.BigInt).Value = Convert.ToInt32(cboAnioEscolar.SelectedValue);
                     cmd.Parameters.Add("@Est_NumeroSegSocial", SqlDbType.VarChar).Value = txtNumeroSeg.Text;
                     cmd.Parameters.Add("@Est_NumeroAfiliado", SqlDbType.VarChar).Value = txtNoAfiliado.Text;
                     cmd.Parameters.Add("@IdCompaniaAseguradora", SqlDbType.BigInt).Value = cboCompAseguradora.Text;
                     cmd.Parameters.Add("@Est_Estado", SqlDbType.VarChar).Value = txtEstado.Text;
                     cmd.Parameters.Add("@Est_Foto", SqlDbType.VarBinary).Value = arrImg;

                     cmd.ExecuteNonQuery();
                     cnx.Close();

                     MessageBox.Show("Registro modificado");
                     TraerTodos();
                 }
             }


    • Editado soyeddygh jueves, 30 de julio de 2015 14:01
    jueves, 30 de julio de 2015 13:58

Respuestas

  • hola

    pero alli deja muy claro que la ruta a la imagen que tienes en "filefoto" no es valida

    es mas te muestra en el error una ruta, pero donde esta el nombre del archivo de la imagen ? te falto añadirlo cuando armaste la ruta

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta soyeddygh jueves, 30 de julio de 2015 19:11
    jueves, 30 de julio de 2015 14:33

Todas las respuestas

  • hola

    pero en lugar de usar el FileStream porque no solo usas una linea

    byte[] arrImg = File.ReadAllBytes(filefoto);


    listo eso es todo para tener el array de byte del archivo

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 30 de julio de 2015 14:01
  • >>el problema es al realizar una actualización en los datos. al intentar editar un registro, si no se cambia la imagen que se agregó al crearlo no permite la actualización del registro y salta un error

    que dice el mensaje del error ?


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 30 de julio de 2015 14:02
  • Gracias por contestar Leandro. Comente todo el código relacionado a la imagen y solo utilicé el arreglo sin embargo obtengo el mismo resultado. 

    

    jueves, 30 de julio de 2015 14:08
  • En el comentario anterior muestro la imagen con el error.
    jueves, 30 de julio de 2015 14:15
  • hola

    pero alli deja muy claro que la ruta a la imagen que tienes en "filefoto" no es valida

    es mas te muestra en el error una ruta, pero donde esta el nombre del archivo de la imagen ? te falto añadirlo cuando armaste la ruta

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta soyeddygh jueves, 30 de julio de 2015 19:11
    jueves, 30 de julio de 2015 14:33