none
¿Qué es mejor: borrar fila con Delete (en DataSet) y preguntar por marca (DataRowState.Deleted) o actualizar en BD cada vez que se borrar fila? RRS feed

  • Pregunta

  • Hola.

    Estoy aprendiendo sobre Ado.Net en general con DataSet genéricos y tipados. En ambos casos me planteo el mismo problema y no sé cual es la mejor solución.

    Entiendo que los DataSet en general, se utilizan cuando el uso de la bd en nuestro proyecto va a ser de consultas más que de actualización. Ya que ahí entiendo que radica la potencia del DataSet, traer la bd o las tablas que deseemos a memoria para que el acceso sea más rápido, pero lógicamente, datos que no estén modificando otra/s aplicación/es o desde otro terminal.

    Sin embargo, si no tenemos el problema de que otros puedan estar haciendo esas actualización, ya podríamos modificar lso registros desde el mismo DataSet (añadir, modificar o/y borrar). En los primeros casos (añadir o modificar) no me planteo problema, ya que podemos estar trabajando desde el DataSet y solo cuando deseemos GuardarCambios recurrir al método Update de los adaptadores (preguntando y recogiendo solo las filas afectadas, etc).

    Pero, claro, si usamos el método Delete (de la fila) dejando que se quede con la marca de DataRowState.Deleted, luego si queremos recorrer las filas de una tabla, deberemos preguntar por los registros que no tengan la marca (ya que no puede acceder a un registro marcado).

    Por todo esto, mi pregunta es: ¿Cuál es la lógica más utilizada y/o lógica?

    ** ¿Borrar y actualizar en la bd en el mismo momento (para que no se queden registros con la marca DataRowState.Deleted) o no hacerlo y estar preguntando continuamente por la marca de Deleted, al pasar por los registros?

    ** Borrar en los dos lugares a la vez: DataSet y Bd (con métodos Delete de la row y del adaptador respectivamente)

    Atentamente

    Mirentxo


    • Editado Mirentxo sábado, 7 de febrero de 2015 19:13
    sábado, 7 de febrero de 2015 19:07

Todas las respuestas

  • No estoy seguro exactamente de lo que pretendes con tu pregunta, ahora si podria decirte lo siguiente, regularmente utilizamos un dataset cuando queremos invocar mas de una table osea un conjunto de tablas, pero en cada operacion en la que deseemos trabajar con una table en  particular deberiamos utilizer un datatable que igualmente tiene datarows y todo eso para economizar recursos de la computadora, osea memoria etc..... el que utilizes el update, insert, delete ocualquiera de esas operaciones va a depender estrictamente de lo que quieras hacer, por ejemplo tengo un programa donde dentro de una misma operacion borro y luego actualize una misma table, recuerda todo va a depender de lo que quieras hacer en ese momento. espero haber contestado de alguna forma tu pregunta, mucho exito con tus aplicaciones...
    domingo, 8 de febrero de 2015 2:01