SqlDataAdapter,SqlCommandBuilder,Update ....

23/10/2004 - 03:45 por YoMisma | Informe spam
Hola,

Estoy usando msde y quiero borrar las filas de una tabla
si cumplen una determinada condición, estoy trabajando
con DataSet,SqlDataAdapter,SqlCommandBuiler.
Lo que pasa es que no me actualiza la base de datos, os
pego el código haber si veis cual es el problema, porque
yo la verdad no se que es lo que pasa

SqlConnection conexion = new SqlConnection();
SqlDataAdapter adapter = new SqlDataAdapter("SELECT *
FROM TABLA",conexion);
DataSet miDataSet = new DataSet();
adapter.Fill(miDataSet,"Tabla");
DataTable tabla = miDataSet.Tables["MiTabla"];
tabla.Rows.Remove(tabla.Rows[1]);
//Por ejemplo elimino la primera fila

Y ahora cuando kiero actualizar la base de datos
SqlCommandBuilder builder = new SqlCommandBuilder
(adapter);
adapter.Update(miDataSet,"Tabla");
conexion.close();

Y no me va ... El caso es que las filas las elimina de la
tabla , pero en el update no actualiza la base de
datos ...
¿Qué puede estar pasando?
Bueno haber si me podeis echar una mano.
Gracias y un saludo
 

Leer las respuestas

#1 A.Poblacion
23/10/2004 - 10:11 | Informe spam
En lugar de tabla.Rows.Remove(tabla.Rows[1]);
tienes que usar tabla.Rows[1].Delete();

La primera sentencia borra completamente la fila del dataset, con lo cual al
hacer el Update éste no sabe que tiene que borrarla. En cambio el Delete la
marca como borrada sin eliminarla de memoria, y al hacer el Update se
transmite al servidor la orden de borrado.


"YoMisma" wrote in message
news:0d1101c4b8a1$f35a3fc0$
Hola,

Estoy usando msde y quiero borrar las filas de una tabla
si cumplen una determinada condición, estoy trabajando
con DataSet,SqlDataAdapter,SqlCommandBuiler.
Lo que pasa es que no me actualiza la base de datos, os
pego el código haber si veis cual es el problema, porque
yo la verdad no se que es lo que pasa

SqlConnection conexion = new SqlConnection();
SqlDataAdapter adapter = new SqlDataAdapter("SELECT *
FROM TABLA",conexion);
DataSet miDataSet = new DataSet();
adapter.Fill(miDataSet,"Tabla");
DataTable tabla = miDataSet.Tables["MiTabla"];
tabla.Rows.Remove(tabla.Rows[1]);
//Por ejemplo elimino la primera fila

Y ahora cuando kiero actualizar la base de datos
SqlCommandBuilder builder = new SqlCommandBuilder
(adapter);
adapter.Update(miDataSet,"Tabla");
conexion.close();

Y no me va ... El caso es que las filas las elimina de la
tabla , pero en el update no actualiza la base de
datos ...
¿Qué puede estar pasando?
Bueno haber si me podeis echar una mano.
Gracias y un saludo

Preguntas similares