none
Actualizacion de datos de un datagriedview c# RRS feed

  • Pregunta

  • Hola amigos.

    Quiero actualizar las modificaciones realizadas de un datagried que tengo en mi programa.

    para mostrar la informacion en mi datagried uso este codigo:

     List<enGosproceformiles> InListOnsiteTechnician = new List<enGosproceformiles>();
                bcOnsiteTech _listonsitetechnician = new bcOnsiteTech();
                InListOnsiteTechnician = _listonsitetechnician.bcGosproceformiles();
                dgvmilesforprice.Rows.Clear();
                if (InListOnsiteTechnician.Count > 0)
                {
                    foreach (var itemsDeLista in InListOnsiteTechnician)
                    {
                        int n = dgvmilesforprice.Rows.Add();
                        dgvmilesforprice.Rows[n].Cells["milla1"].Value = itemsDeLista.miles1;
                        dgvmilesforprice.Rows[n].Cells["Price"].Value = itemsDeLista.amount1;
                        dgvmilesforprice.Rows[n].Cells["milla2"].Value = itemsDeLista.miles2;
                        dgvmilesforprice.Rows[n].Cells["Price2"].Value = itemsDeLista.amount2;
                        dgvmilesforprice.Rows[n].Cells["milla3"].Value = itemsDeLista.miles3;
                        dgvmilesforprice.Rows[n].Cells["Price3"].Value = itemsDeLista.amount3;
                    }
                    dgvmilesforprice.ClearSelection();
                    dgvmilesforprice.Rows[0].Selected = true;
                }

    ese codigo me muestra la informacion en mi datagried, cuando realizo un cambio en alguna columna del datagried quiero que se actualice la base de datos.

    de antemano gracias por su apoyo.

    martes, 3 de julio de 2018 16:47

Respuestas

  • Lo mejor es que vincule a datos.  Eso que hace de construir las filas "a mano" es 100% innecesario.

    No muestra de dónde sale itemsDeLista, así que pondré apenas un pequeño ejemplo.

    List<AlgunTipoQueRepresentaLosRegistrosQueQuiero> itemsDeLista = AlgunRepositorio.ObtenerLaListaQueQuiero();
    BindingList<...> miLista = new BindingList<...>(itemsDeLista);
    dgvmilesforprice.DataSource = miLista; //Esto crea las filas automáticamente.
    Ah, una vez que tiene esto listo, la grilla actualizará los objetos contenidos en la lista automáticamente.  Cuando quiera grabar, solamente necesitará recorrer la lista (ojo, no es recorrer la grilla, es recorrer la lista vinculada a la grilla) y ejecutar el código EF o el procedimiento almacenado, o el método de repositorio, etc. para actualizar los datos en base de datos.


    Jose R. MCP
    My GIT Repositories | Mis Repositorios GIT


    • Editado webJoseModerator miércoles, 4 de julio de 2018 19:07
    • Marcado como respuesta alcri viernes, 6 de julio de 2018 20:10
    miércoles, 4 de julio de 2018 19:06
    Moderador

Todas las respuestas

  • Lo mejor es que vincule a datos.  Eso que hace de construir las filas "a mano" es 100% innecesario.

    No muestra de dónde sale itemsDeLista, así que pondré apenas un pequeño ejemplo.

    List<AlgunTipoQueRepresentaLosRegistrosQueQuiero> itemsDeLista = AlgunRepositorio.ObtenerLaListaQueQuiero();
    BindingList<...> miLista = new BindingList<...>(itemsDeLista);
    dgvmilesforprice.DataSource = miLista; //Esto crea las filas automáticamente.
    Ah, una vez que tiene esto listo, la grilla actualizará los objetos contenidos en la lista automáticamente.  Cuando quiera grabar, solamente necesitará recorrer la lista (ojo, no es recorrer la grilla, es recorrer la lista vinculada a la grilla) y ejecutar el código EF o el procedimiento almacenado, o el método de repositorio, etc. para actualizar los datos en base de datos.


    Jose R. MCP
    My GIT Repositories | Mis Repositorios GIT


    • Editado webJoseModerator miércoles, 4 de julio de 2018 19:07
    • Marcado como respuesta alcri viernes, 6 de julio de 2018 20:10
    miércoles, 4 de julio de 2018 19:06
    Moderador
  • hola

    >>ese codigo me muestra la informacion en mi datagried, cuando realizo un cambio en alguna columna del datagried quiero que se actualice la base de datos.

    pero como operas con la db ? digo usas ado.net con UPDATE o quizas dataset tipado con el TableAdapter, o es por medio de Entity Framework

    >>para mostrar la informacion en mi datagried uso este codigo:

    ese codigo es incorrecto, deberias usar el DataSource del grid asignando la lista, no tienes que hacer ningun foreach

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 4 de julio de 2018 19:34