PROBLEMA CON UPDATE UNA BD (SQL Y VB 2005)

11/01/2006 - 14:48 por gambini | Informe spam
Hola a todos: Al parecer este problema es muy común. Este es mi caso: En un
"Form1" tengo un "DataGridView1", un "InsertButton", y un "DeleteButton". Y
en una BD tengo una tabla "productos". El "InsertButton" funciona muy bien.
Los registros que inserto (por código, no lo incluyo) se visualizan en el
"DataGridView1". He aquí parte del código:
DataAdapter1.Fill(DataSet1, "productos")
DataGridView1.DataSource=DataSet1.Tables(0)
DataAdapter1.UpadetBatchSize=0 ' para insertar todos los registros en batch
DataAdapter1.Update(DataSet1, "productos")
Inserté 1000 registros, como prueba.
Ahora, para borrar los 1000 registros, lo hago de dos maneras: a.-
Primitiva:elimino manualmente los registros(con la tecla Supr) en el
DataGridView1 y pulso "DeleButton" que implementa el código:
DataAdapter1.Upadate(myDataSet, "productos"), lo que elimina los regsitros en
la BD (OK). b.- Elegante: Eliminando uno a uno los registros me pasaría una
semana. Entonces, agrego el código "DataSet.Tables(0).Rows.Clear()" al botón.
Esto elimina todos los registros en el "DataSet1", tal es así que ya no se
visualizan en el "DatGridView1"; qué bueno!. Pero, no elimina los registros
en la BD!, por qué????.

Preguntas similare

Leer las respuestas

#1 .:: MaStErDoN ::.
11/01/2006 - 15:10 | Informe spam
Pusiste que te copie la bse de datos dentro de tu proyecto cuando creaste el
enlace?

Andres

"gambini" escribió en el mensaje
news:
Hola a todos: Al parecer este problema es muy común. Este es mi caso: En
un
"Form1" tengo un "DataGridView1", un "InsertButton", y un "DeleteButton".
Y
en una BD tengo una tabla "productos". El "InsertButton" funciona muy
bien.
Los registros que inserto (por código, no lo incluyo) se visualizan en el
"DataGridView1". He aquí parte del código:
DataAdapter1.Fill(DataSet1, "productos")
DataGridView1.DataSource=DataSet1.Tables(0)
DataAdapter1.UpadetBatchSize=0 ' para insertar todos los registros en
batch
DataAdapter1.Update(DataSet1, "productos")
Inserté 1000 registros, como prueba.
Ahora, para borrar los 1000 registros, lo hago de dos maneras: a.-
Primitiva:elimino manualmente los registros(con la tecla Supr) en el
DataGridView1 y pulso "DeleButton" que implementa el código:
DataAdapter1.Upadate(myDataSet, "productos"), lo que elimina los regsitros
en
la BD (OK). b.- Elegante: Eliminando uno a uno los registros me pasaría
una
semana. Entonces, agrego el código "DataSet.Tables(0).Rows.Clear()" al
botón.
Esto elimina todos los registros en el "DataSet1", tal es así que ya no
se
visualizan en el "DatGridView1"; qué bueno!. Pero, no elimina los
registros
en la BD!, por qué????.
Respuesta Responder a este mensaje
#2 Eduardo Alvarado Meza
11/01/2006 - 15:10 | Informe spam
La respuesta es sencilla, Clear no es equivalente a Remove. Clear limpia la
tabla para que le hagas cualquier cosa como un nuevo fill

Tu deberias hacer un For each de cada fila en Dataset.Table("").Rows y
hacerle asi un Dataset.Table("").Remove(Datarow) a cada fila. No es una
operacion tan lenta, esto cambiaria el estado de las filas.
Respuesta Responder a este mensaje
#3 gambini
11/01/2006 - 16:22 | Informe spam
Gracias Eduardo. La solución es en esa dirección. Pero, como estamos en VB
2005, el código difiere un poco, y es como sigue:
Dim dr As DataRow
Try
For Each dr In DataSet1.Tables(0).Rows()
dr.Delete() ''' ojito...
Next
DataAdapter1.Update(DataSet1, "productos")
DataSet1.AcceptChanges()
Catch ex As Exception
MessageBox.Show("Falló el delete...: " & ex.Message.ToString,
"!Alerta...!")
End Try

"Eduardo Alvarado Meza" escribió:

La respuesta es sencilla, Clear no es equivalente a Remove. Clear limpia la
tabla para que le hagas cualquier cosa como un nuevo fill

Tu deberias hacer un For each de cada fila en Dataset.Table("").Rows y
hacerle asi un Dataset.Table("").Remove(Datarow) a cada fila. No es una
operacion tan lenta, esto cambiaria el estado de las filas.



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida