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#
#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$
Mostrar la cita
del
Mostrar la cita
#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ó:

Mostrar la cita
#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:
Mostrar la cita
el
Mostrar la cita
cómo se
Mostrar la cita
configurar
Mostrar la cita
configurar
Mostrar la cita
pasos
Mostrar la cita
partir de
Mostrar la cita
generados
Mostrar la cita
los
Mostrar la cita
#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#
Ads by Google
Search Busqueda sugerida