Realizar un update a un datatable

26/05/2005 - 21:31 por Bernardo Campos | Informe spam
Hola compañeros, he cargado un datatable con el Fill de un dataadapter. Una
vez cargado, cómo podría hacer un Update a un conjunto de registros al
table. Algo asi como "update table set campo=valor". Gracias.



Sta Cruz, Bolivia

Preguntas similare

Leer las respuestas

#1 Tristan
28/05/2005 - 01:52 | Informe spam
Tanto para el Fill como para el Update tu dataadapter necesita tener
configurados una serie de comandos. Para el Fill has tenido que configurar
un comando de selección. para que funcione el Update tienes que configurar
lso tres comandos de actualización.

La forma más fácil de configurar los 4 comandos, es siguiendo los pasos del
asistente del diseñador winforms. Simplemente arrastrando un compoente
xxxDataAdapter a tu formulario y siguiendo los pasos.

Otra forma sencilla es crear un objecto xxxCommandBuilder, que a partir de
tu Select genera los comandos de actualización. Estos 3 comandos generados
se tienen que asignar a los correspondientes de tu dataadapter.

Por último puedes crear los comandos de actualización manualmente.

Si ya tienes definido completamente el dataadapter, para actualizar los
datos a la BD, basta con que llames a su método Update().

Juan Carlos Badiola
MVP - C#
Respuesta Responder a este mensaje
#2 Bernardo Campos
30/05/2005 - 15:56 | Informe spam
Gracias Tristan por tu ayuda, quizas no se me entendió mi pregunta, en el
foro de ado .net lo redacté de esta forma, y me respondieron que no se
puede:

He cargado un datatable con el Fill de un dataadapter. Una
vez cargado en un table, cómo podría hacer un Update a un conjunto de
registros.

En otras palabras para actualizar varias filas podria hacer algo así:

for each row in table.rows
row(0) = NuevoValor
next

Pero yo no quiero utilizar un for para actualizar sino algo como:
"Update table set row(0) = nuevoValor where row(0) = viejoValor", o cómo se
haría.?



Sta Cruz, Bolivia
"Tristan" wrote in message
news:%23$
Tanto para el Fill como para el Update tu dataadapter necesita tener
configurados una serie de comandos. Para el Fill has tenido que configurar
un comando de selección. para que funcione el Update tienes que configurar
lso tres comandos de actualización.

La forma más fácil de configurar los 4 comandos, es siguiendo los pasos


del
asistente del diseñador winforms. Simplemente arrastrando un compoente
xxxDataAdapter a tu formulario y siguiendo los pasos.

Otra forma sencilla es crear un objecto xxxCommandBuilder, que a partir de
tu Select genera los comandos de actualización. Estos 3 comandos generados
se tienen que asignar a los correspondientes de tu dataadapter.

Por último puedes crear los comandos de actualización manualmente.

Si ya tienes definido completamente el dataadapter, para actualizar los
datos a la BD, basta con que llames a su método Update().

Juan Carlos Badiola
MVP - C#


Respuesta Responder a este mensaje
#3 daniel
30/05/2005 - 17:22 | Informe spam
hay que usar una sentencia sql "UPDATE TABLA SET CAMPO = VALOR WHERE CAMPO =
VALOR A ACTUALIZAR"


"Bernardo Campos" escribió:

Gracias Tristan por tu ayuda, quizas no se me entendió mi pregunta, en el
foro de ado .net lo redacté de esta forma, y me respondieron que no se
puede:

He cargado un datatable con el Fill de un dataadapter. Una
vez cargado en un table, cómo podría hacer un Update a un conjunto de
registros.

En otras palabras para actualizar varias filas podria hacer algo así:

for each row in table.rows
row(0) = NuevoValor
next

Pero yo no quiero utilizar un for para actualizar sino algo como:
"Update table set row(0) = nuevoValor where row(0) = viejoValor", o cómo se
haría.?



Sta Cruz, Bolivia
"Tristan" wrote in message
news:%23$
> Tanto para el Fill como para el Update tu dataadapter necesita tener
> configurados una serie de comandos. Para el Fill has tenido que configurar
> un comando de selección. para que funcione el Update tienes que configurar
> lso tres comandos de actualización.
>
> La forma más fácil de configurar los 4 comandos, es siguiendo los pasos
del
> asistente del diseñador winforms. Simplemente arrastrando un compoente
> xxxDataAdapter a tu formulario y siguiendo los pasos.
>
> Otra forma sencilla es crear un objecto xxxCommandBuilder, que a partir de
> tu Select genera los comandos de actualización. Estos 3 comandos generados
> se tienen que asignar a los correspondientes de tu dataadapter.
>
> Por último puedes crear los comandos de actualización manualmente.
>
> Si ya tienes definido completamente el dataadapter, para actualizar los
> datos a la BD, basta con que llames a su método Update().
>
> Juan Carlos Badiola
> MVP - C#
>
>



Respuesta Responder a este mensaje
#4 Bernardo Campos
30/05/2005 - 17:46 | Informe spam
Gracias daniel, pero quisiera saber cómo serían mas o menos las sentencias
utilizando el DataAdapter, datatable, etc.



Sta Cruz, Bolivia
"daniel" wrote in message
news:
hay que usar una sentencia sql "UPDATE TABLA SET CAMPO = VALOR WHERE CAMPO
VALOR A ACTUALIZAR"


"Bernardo Campos" escribió:

> Gracias Tristan por tu ayuda, quizas no se me entendió mi pregunta, en


el
> foro de ado .net lo redacté de esta forma, y me respondieron que no se
> puede:
>
> He cargado un datatable con el Fill de un dataadapter. Una
> vez cargado en un table, cómo podría hacer un Update a un conjunto de
> registros.
>
> En otras palabras para actualizar varias filas podria hacer algo así:
>
> for each row in table.rows
> row(0) = NuevoValor
> next
>
> Pero yo no quiero utilizar un for para actualizar sino algo como:
> "Update table set row(0) = nuevoValor where row(0) = viejoValor", o


cómo se
> haría.?
>
>
>
> Sta Cruz, Bolivia
> "Tristan" wrote in message
> news:%23$
> > Tanto para el Fill como para el Update tu dataadapter necesita tener
> > configurados una serie de comandos. Para el Fill has tenido que


configurar
> > un comando de selección. para que funcione el Update tienes que


configurar
> > lso tres comandos de actualización.
> >
> > La forma más fácil de configurar los 4 comandos, es siguiendo los


pasos
> del
> > asistente del diseñador winforms. Simplemente arrastrando un compoente
> > xxxDataAdapter a tu formulario y siguiendo los pasos.
> >
> > Otra forma sencilla es crear un objecto xxxCommandBuilder, que a


partir de
> > tu Select genera los comandos de actualización. Estos 3 comandos


generados
> > se tienen que asignar a los correspondientes de tu dataadapter.
> >
> > Por último puedes crear los comandos de actualización manualmente.
> >
> > Si ya tienes definido completamente el dataadapter, para actualizar


los
> > datos a la BD, basta con que llames a su método Update().
> >
> > Juan Carlos Badiola
> > MVP - C#
> >
> >
>
>
>
Respuesta Responder a este mensaje
#5 Tristan
30/05/2005 - 18:38 | Informe spam
Si, ya veo que no te había entendido.

Para la respuesta a tu pregunta, es que depende de lo que realmente
necesites.

¿Necesitas actualizar la BD? Si es eso, lo puedes hacer tal y como te ha
dicho Daniel, mediante un comando Update de SQL:

dim comando as new OleDbCommand("UPDATE tuTabla SET campo = valor WHERE
...", conexion)
conexion.Open()
comando.ExecuteNonQuery()
conexion.Close()


Pero si lo que quieres es actualizar tu DataTable (en memoria) sin afectar a
la BD, la respuesta es la que te han dado en el foro de ado.net. No se puede
sin un bucle. No hay un lenguaje de consulta como SQL para manipular
DataSets. Si trabajas con ADO, DAO, RDO, es similar a lo que ocurre con
estos. No se puede lanzar comandos SQL sobre un recordset de ADO, los
comandos SQL se ejecutan sobre la BD.

Juan Carlos Badiola
MVP - C#
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida