Uso de DataView y DataAdpater

20/02/2007 - 19:43 por TonyMX | Informe spam
Hola!
Tengo el siguiente escenario:
Carge dos tablas en una dataset del tipo master-detail, y cree un DataView
para cada una a fin de utilizar los metodos de filtrado del DataView.
Actualizo las filas a través de el DataRowView (usando los metodos
Add,BeginEdit,EnEdit) y actualizo el dataset con el metodo AcceptChanges.

El problema viene cuando deseo actualizar la base de datos, ya que al crear
un dataAdapter, debo especificar los comandos para Insert,Update y Delete.

Si ya actualize el Dataset, porque es necesario volver a actualizar pasando
comandos al dataAdapter???

debo de Barrer cada uno de los registros del DataView que corresponda para
checar su status y si fue modificado llamar al comando correspondiente del
DataAdapter para despues usar el metodo Update(unDataSet) y actualizar la
base de datos???

Habra una forma mas sencilla de hacer esto??? ya que me parece demasiado
trabajo..!!

Cual es la ventaja de cargar varias tablas en memoria si debo de actualizar
registro x registro.

De antemano Gracias!
TonyMX
 

Leer las respuestas

#1 Roberto
20/03/2007 - 15:28 | Informe spam
Primer error muy importante, no aceptes lo cambios del dataset. Cuando el
DataAdapter lea el DataSet sólo actualizará los cambios que encuentre y si tu
ya los has aceptado no encotrará ninguno. El DataAdapter tiene por defecto la
propiedad AceptChangesDuringUpdate y ya se encarga de aceptar al grabarlos en
la base de datos.

Los cambios que hagas en el DataSet sólo se actualizarán en la base de datos
cuando llames al metodo Update del DataAdapter, mientras tanto estás
completamente desconectado de la base de datos. Si quieres incluso puedes
llamar al Dispose del DataAdapter y crear uno nuevo cuando vayas a guardar
los cambios y verás que no hay diferencia.

Para los comandos utiliza un CommandBuilder:
Dim cb As New OleDbCommandBuilder(TuDataAdapter)
TuDataAdapter.Update(TuDataTable)

"TonyMX" wrote:

Hola!
Tengo el siguiente escenario:
Carge dos tablas en una dataset del tipo master-detail, y cree un DataView
para cada una a fin de utilizar los metodos de filtrado del DataView.
Actualizo las filas a través de el DataRowView (usando los metodos
Add,BeginEdit,EnEdit) y actualizo el dataset con el metodo AcceptChanges.

El problema viene cuando deseo actualizar la base de datos, ya que al crear
un dataAdapter, debo especificar los comandos para Insert,Update y Delete.

Si ya actualize el Dataset, porque es necesario volver a actualizar pasando
comandos al dataAdapter???

debo de Barrer cada uno de los registros del DataView que corresponda para
checar su status y si fue modificado llamar al comando correspondiente del
DataAdapter para despues usar el metodo Update(unDataSet) y actualizar la
base de datos???

Habra una forma mas sencilla de hacer esto??? ya que me parece demasiado
trabajo..!!

Cual es la ventaja de cargar varias tablas en memoria si debo de actualizar
registro x registro.

De antemano Gracias!
TonyMX


Preguntas similares