none
¿Como agregar un campo autonúmerico en un DataGridView? RRS feed

  • Pregunta

  • Buenas foros. vengo aquí con una consulta, tengo un DataGridView donde muestro datos de clientes, como nombre, correo, fecha de nacimiento, y a su vez puedo insertar,editar y eliminar la fila de los registros obteniendo el id desde la base de datos, pero quisiera que el Id que se mostrara no fuera desde la base de datos, se que tiene que estar ese Id para saber cual se tiene que eliminar o editar, también se que puedo ocultar ese campo para realizar la operación correspondiente de edición o eliminación, en conclusión es un campo necesario.

    ¿Cual es el problema? que si tengo 10 registros y borro un registro por ejemplo el registro con id 5, cuando cargo el datagridview los id's que me salen son 1-2-3-4-6-7-8-9-10 faltando el 5 porque como lo he dicho lo elimine, como haría para que al borrar un registro ese ID creado para el DataGridView se recalculara y me acomodara los registros con 1-2-3-4-5-6-7-8-9-10, así no importaría lo que elimine el ID se vería con orden ¿Alguna sugerencia?

    Espero haberme explicado bien. Saludos y gracias por tomarse el tiempo de leer.
    viernes, 31 de enero de 2020 20:31

Respuestas

  • hola

    >>como haría para que al borrar un registro ese ID creado para el DataGridView se recalculara y me acomodara los registros con 1-2-3-4-5-6-7-8-9-10,

    Olvidate es lo peor que puedes hacer, si recalculas un campo que defines como key afectas a todas las relaciones

    eso que planteas es una locura

    Si quieres algo secuancial realizalo solo de forma visual para el usuario, pero mantiene el valor en una columna de forma oculta que obtienes de la tabla en la db para poder identificar al registro

    Show row number in row header of a DataGridView

    usas algo como ser

    private void setRowNumber(DataGridView dgv)
    {
        foreach (DataGridViewRow row in dgv.Rows)
        {
            row.HeaderCell.Value = (row.Index + 1).ToString();
        }
    }

    asi asignas el numero secuancial de la row en la parte columns gris de la izquierda

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    sábado, 1 de febrero de 2020 1:24

Todas las respuestas

  • hola

    >>como haría para que al borrar un registro ese ID creado para el DataGridView se recalculara y me acomodara los registros con 1-2-3-4-5-6-7-8-9-10,

    Olvidate es lo peor que puedes hacer, si recalculas un campo que defines como key afectas a todas las relaciones

    eso que planteas es una locura

    Si quieres algo secuancial realizalo solo de forma visual para el usuario, pero mantiene el valor en una columna de forma oculta que obtienes de la tabla en la db para poder identificar al registro

    Show row number in row header of a DataGridView

    usas algo como ser

    private void setRowNumber(DataGridView dgv)
    {
        foreach (DataGridViewRow row in dgv.Rows)
        {
            row.HeaderCell.Value = (row.Index + 1).ToString();
        }
    }

    asi asignas el numero secuancial de la row en la parte columns gris de la izquierda

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    sábado, 1 de febrero de 2020 1:24
  • Buenas leandro, gracias por responder, probare tu código, quizás me explique mal, efectivamente como dices el campo que digo no se va a guardar en la base de datos, es nada mas para la vista, para que cree un sentido de orden en los items que se verían en el datagridview, el ID que viene de la base de datos, no lo tocaré. Muchas gracias por responder, probaré tu código :).
    lunes, 3 de febrero de 2020 15:33