none
ACTUALIZAR DATAGRIDVIEW C# RRS feed

  • Pregunta

  • Hola buenas tardes, tengo un datagridview con información de los usuarios de un laboratorio traida de la base de datos, para ingresar un nuevo usuario lo ingreso desde unos textbox validando previamente que la cédula de identidad no se encuentre repetida y almacene la información para luego llamar a un método cargarGrilla() que me va actualizando la información.

    Hasta ahí todo bien, pero para modificar la información lo hago directamente desde las celdas del datagridview, ahí el problema cuando trato de validar que la cédula de identidad no se repita. Al actualizar la cédula de identidad si lo modifica, pero si solo modifico otras celdas como nombre, apellido, etc y la celda de la cédula lo dejo intacto me muestra un mensaje de error de que la cédula ya esta ingresada aunque solo haya una cédula con ese numero. 

    Como puedo validar que la cédula de identidad no se repita al actualizar celdas desde el mismo datagridview.

    Cualquier ayuda estaré muy agradecido.

     
    viernes, 14 de abril de 2017 20:37

Respuestas

  • Probablemente indica un error en la lógica de actualización. Cuando modifiques el registro, sigue la ejecución con el debugger en Visual Studio y comprueba cuál es la sentencia de actualización que estás generando. Si es un "Update...Where...", debería ser capaz de actualizarte las columnas del registro con independencia de que la cédula haya cambiado (siempre que no la cambies por otra que ya exista, pero si el WHERE te condiciona correctamente el mismo registro donde ya está esa cédula, no debería haber problema). Así que verifícalo, no sea que estés haciendo un INSERT en lugar de un UPDATE, o que se esté generando mal el valor del WHERE en el UPDATE.
    sábado, 15 de abril de 2017 8:50
    Moderador

Todas las respuestas

  • Probablemente indica un error en la lógica de actualización. Cuando modifiques el registro, sigue la ejecución con el debugger en Visual Studio y comprueba cuál es la sentencia de actualización que estás generando. Si es un "Update...Where...", debería ser capaz de actualizarte las columnas del registro con independencia de que la cédula haya cambiado (siempre que no la cambies por otra que ya exista, pero si el WHERE te condiciona correctamente el mismo registro donde ya está esa cédula, no debería haber problema). Así que verifícalo, no sea que estés haciendo un INSERT en lugar de un UPDATE, o que se esté generando mal el valor del WHERE en el UPDATE.
    sábado, 15 de abril de 2017 8:50
    Moderador
  • Hola,

    Seria, de mucha ayuda que mostraras tu código, para poder visualizar.

    Ahora bien, me imagino que así cargas tu datagridview

    public void cargarGrilla() {

    Controlador.CargarGrilla ObjCargar = new ControladorCargarGrilla();

    > aqui esta el metodo, que realiza el select * from tabla 

    TablaGrilla.Clean();

    TablaGrilla.DataSource = null;TablaGrilla.DataSource = ObjCargar; > aqui cargas el grid

    }


    Cuando quieras que se actualize dicho grid, solo debes de invocar el metodo "CargarGrilla()" al finalizar de cualquier método que ejecutes.

    Saludos !!




    sábado, 15 de abril de 2017 14:30
  • hola

    >>Al actualizar la cédula de identidad si lo modifica, pero si solo modifico otras celdas como nombre, apellido, etc y la celda de la cédula lo dejo intacto me muestra un mensaje de error de que la cédula

    cual es la clave o key de la entidad ?

    si es la cédula de identidad esta claro que este campo no se puede actualizar porque sera parte del WHERE que uses en el UPDATE para localizar que row actualizar

    si debes validar que no se exista cuando creas una nueva entidad, pero al actualizar esta validacion no debes aplicarla

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    sábado, 15 de abril de 2017 20:34