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

Mostrar la cita
Ads by Google
Search Busqueda sugerida