none
Comparar Datagridview con datatable RRS feed

  • Pregunta

  • Hola como va? Tengo un datagridview que en su datasource toma una tabla, lo que necesito hacer es en el datagridview se puede cambiar en alguna celda algun valor y cuando se graba detecte el cambio en relacion con el datatable. Aclaro el datatable y por consiguiente el datagridview lo manejo con un pívot de acuerdo a la selección se arma con 2 variantes Fila A y Columna B o Fila B y Columna A. El valor que se puede cambiar es numérico y además necesito tomar ese único valor o valores y grabar fecha de cambio y usuario que cambio el valor o los valores en la celdas. Desde ya gracias

    miércoles, 3 de marzo de 2021 21:20

Respuestas

  • Hola Enzo,

    Sería bueno que compartieras el código para saber mejor como lo estás desarrollando. Porque responder algo así es muy díficil, con lo que dices se me viene a la cabeza es usar como un"Trigger", pero no sé si esto sea posible para ti o para tú código.

    Saludos,

    Eric Ruiz

    Hola Eric gracias por responder. Te comento todo el proyecto tengo una pantalla tipo excel donde tengo como columna nombre de obra social y filas con practicas luego en las celdas el usuario escribe el precio de esa practica relacionada a una obra social, me lo pidieron así porque estaban acostumbrados a usar esto en un excel, ahora bien le puse un pivot para que cambie de esta vista

                          LUMBAGIA      REHABILITACION

    MEDI PLUS         500  $                  400 $

    BOREAL              700  $                 600 $

    a esta otra

                                   MEDI PLUS          BOREAL

    LUMBAGIA                     500 $               700 $

    REHABILITACION            400 $               600 $

    Así el usuario selecciona como quiere ver los precios. Luego ingresan a cada celda y ponen los valores que quieren, además de la tabla precio, tengo una tabla historial de precios, donde se guarda el precio actual, la fecha de actualización y el usuario que cambio el precio. En la tabla precios no había problema ya que solo actualizaba el precio, el problema me surgía en la tabla historial de precios, ya que en esa tabla tiene el id de la practica el id de la obra social el precio actual, fecha actual y el usuario que realizo el cambio, se me pidió solamente mantener los últimos tres cambios, entonces cuando realiza el grabado de datos se graba el actual el que estaba como actual pasa a anterior y el anterior pasa a otro anterior, con fecha y usuario, en la consulta para grabar me actualizaba todos los datos de fechas y usuarios, porque en vez de comparar que cambio se había hecho en el grid (por eso puse la pregunta aquí) recorría todo el grid y hacia el grabado, aquí es donde la fecha actual la anterior y la otra anterior se actualizaba con la fecha actual y no mantenía la fecha de ese campo. Al final después de leer información como prueba cargue el datagridview en un datatable para compararlo con el datatable que previamente había cargado el grid para encontrar los cambios realizados y logre ver los cambios, y cuando estaba por rearmar el código para grabar, probé en la consulta que ya tenia anterior le agregué que el precio sea distinto al de la tabla y soluciono el problema, de todas formas si mas adelante voy a ver de implementar la comparación de datos cambiados en lugar de recorrer todo el grid. Por eso doy como finalizada la pregunta. Y no agrego el código porque no esta relacionado con el posteo, pero si necesitan que lo agregue no tengo problemas. Gracias de nuevo y saludos

    • Marcado como respuesta EnzoTuc40 jueves, 4 de marzo de 2021 13:38
    jueves, 4 de marzo de 2021 13:36

Todas las respuestas

  • Hola Enzo,

    Sería bueno que compartieras el código para saber mejor como lo estás desarrollando. Porque responder algo así es muy díficil, con lo que dices se me viene a la cabeza es usar como un"Trigger", pero no sé si esto sea posible para ti o para tú código.

    Saludos,

    Eric Ruiz

    miércoles, 3 de marzo de 2021 23:21
    Moderador
  • Hola Enzo,

    Sería bueno que compartieras el código para saber mejor como lo estás desarrollando. Porque responder algo así es muy díficil, con lo que dices se me viene a la cabeza es usar como un"Trigger", pero no sé si esto sea posible para ti o para tú código.

    Saludos,

    Eric Ruiz

    Hola Eric gracias por responder. Te comento todo el proyecto tengo una pantalla tipo excel donde tengo como columna nombre de obra social y filas con practicas luego en las celdas el usuario escribe el precio de esa practica relacionada a una obra social, me lo pidieron así porque estaban acostumbrados a usar esto en un excel, ahora bien le puse un pivot para que cambie de esta vista

                          LUMBAGIA      REHABILITACION

    MEDI PLUS         500  $                  400 $

    BOREAL              700  $                 600 $

    a esta otra

                                   MEDI PLUS          BOREAL

    LUMBAGIA                     500 $               700 $

    REHABILITACION            400 $               600 $

    Así el usuario selecciona como quiere ver los precios. Luego ingresan a cada celda y ponen los valores que quieren, además de la tabla precio, tengo una tabla historial de precios, donde se guarda el precio actual, la fecha de actualización y el usuario que cambio el precio. En la tabla precios no había problema ya que solo actualizaba el precio, el problema me surgía en la tabla historial de precios, ya que en esa tabla tiene el id de la practica el id de la obra social el precio actual, fecha actual y el usuario que realizo el cambio, se me pidió solamente mantener los últimos tres cambios, entonces cuando realiza el grabado de datos se graba el actual el que estaba como actual pasa a anterior y el anterior pasa a otro anterior, con fecha y usuario, en la consulta para grabar me actualizaba todos los datos de fechas y usuarios, porque en vez de comparar que cambio se había hecho en el grid (por eso puse la pregunta aquí) recorría todo el grid y hacia el grabado, aquí es donde la fecha actual la anterior y la otra anterior se actualizaba con la fecha actual y no mantenía la fecha de ese campo. Al final después de leer información como prueba cargue el datagridview en un datatable para compararlo con el datatable que previamente había cargado el grid para encontrar los cambios realizados y logre ver los cambios, y cuando estaba por rearmar el código para grabar, probé en la consulta que ya tenia anterior le agregué que el precio sea distinto al de la tabla y soluciono el problema, de todas formas si mas adelante voy a ver de implementar la comparación de datos cambiados en lugar de recorrer todo el grid. Por eso doy como finalizada la pregunta. Y no agrego el código porque no esta relacionado con el posteo, pero si necesitan que lo agregue no tengo problemas. Gracias de nuevo y saludos

    • Marcado como respuesta EnzoTuc40 jueves, 4 de marzo de 2021 13:38
    jueves, 4 de marzo de 2021 13:36