Visual Basic.NET - ¡ AYUDA ! ADO .NET

 
Vista:

¡ AYUDA ! ADO .NET

Publicado por Fernando (14 intervenciones) el 08/01/2004 16:53:41
Hola, a ver si alguien me puede ayudar en un problemilla que tengo. Quiero borrar un registro de una base de datos. Utilizo ADO .NET, creo la conexion, el comando SELECT, el DataSet y el DataAdapter y para ahorrarme escribir las sentencias SQL de INSERT, DELETE y UPTADE utilizo un CommandBuilder.
Pues bien, los cambios en las tablas no se reflejan en la base de datos fisica

Paso el codigo que utilizo a ver si alguien me puede decir donde esta el error porque ya me estoy pensando en utilizar de nuevo el ADO antiguo.

cn = New OleDb.OleDbConnection(sConnection)
cm = New OleDb.OleDbCommand("SELECT * FROM MyTable", cn)
da = New OleDb.OleDbDataAdapter(cm)
cb = New OleDb.OleDbCommandBuilder(da)

La operacion de borrado es la siguiente:

dr = vp.Table.Rows.Find(vp.Leer().Item(0)) ' Obtiene el DataRow a borrar
ds.Tables(0).Rows.Remove(dr) ' Lo borra y ademas llama a AccepChanges()

Try
da.Update(ds.Tables(0)) ' Traslada los cambios a la base de datos
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try

Pues tururú, no funciona.

Gracias y un saludo a todos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 153
Ha aumentado 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

RE:¡ AYUDA ! ADO .NET

Publicado por Yamil Bracho (631 intervenciones) el 08/01/2004 17:41:36
El problema es que no has asigando las correspondientes sentencias SQL que te genera el CommandBuilder a tu DataAdapter.
Debes hacer algo como :

da.InsertCommand = cb.GetInsertCommand()
da.DeleteCommand = cb.GetDeleteCommand()
da.UpdateCommand = cb.GetUpdateCommand()

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

PARA YAMIL

Publicado por Fernando (14 intervenciones) el 08/01/2004 18:14:17
Majete, me has salvado la vida :-)
En la documentacion MSDN deberia de poner eso que me has dicho, solo pone que con darle la SQL de SELECT ya esta, no tienes que hacer nada mas.
De todas maneras, no me funcionaba con eso, pero intente borrar el registro desde el DataView directamente, con dv.Delete(posicion) y funcionó

Muchas gracias y te debo una
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 153
Ha aumentado 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

RE:PARA YAMIL

Publicado por Yamil Bracho (631 intervenciones) el 08/01/2004 18:38:00
Si la documentacion deja mucho que desear y sobre todo la falta de ejemplos... pero bueno es la unica que hay y a veces hay que tirar flechas para ver si alguna da en el blanco...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar