Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Insertar nuevo registro

60 views
Skip to first unread message

Victor Herrera

unread,
Dec 3, 2005, 9:17:02 AM12/3/05
to
Buenas

Tengo un problema al tratar de insertar un nuevo registro en una base de
datos Access con VB .NET 2005

Dim fila As Data.DataRow
fila = dsMusica.Tables("musica").NewRow
fila("cd") = lblCD.Text
fila("carpeta") = "hola"
fila("ano") = "2006"
dsMusica.Tables("musica").Rows.Add(fila)
daMusica.Update(dsMusica, "musica")

me da el error en Update del DataAdapter: Update requiere que InsertCommand
sea válido cuando se pasa la colección DataRow con nuevas filas.

la BD tiene la tabla muscia, con 4 campos, Id autonumerico,carpeta,cd y ano

se supone que el autonumerico no se pone porque access deberia incrementarlo
solo.En VB 6 al menos funcionaba asi.

de ante mano gracias

A.Poblacion

unread,
Dec 4, 2005, 4:38:15 AM12/4/05
to
"Victor Herrera" <Victor...@discussions.microsoft.com> wrote in message
news:E0BECF75-2B0C-49CB...@microsoft.com...


Lo que te dice el error es que dentro del DataAdapter daMusica te falta
definirle el InsertCommand, por lo que no sabe cómo grabar en la base de
datos.
Aunque no nos has puesto el código que usas para definir el daMusica,
probablemente has hecho algo parecido a lo siguiente:

Dim daMusica as new OleDbDataAdapter("Select * from Musica", conexion);

Esto solo inicializa el SelectCommand, por lo que ese dataadapter
únicamente sirve para leer de la tabla, y no para grabar. Puedes construir y
asignar manualmente el InsertCommand, pero si no te quieres molestar, puedes
usar el CommandBuilder para que lo haga por ti. Simplemente añade esta
linea:

Dim ocb as New OleDbCommanBuilder(daMusica)

Y a continuación ya puedes usar el mismo código que tenías.


Victor Herrera

unread,
Dec 4, 2005, 6:25:02 PM12/4/05
to
Muchas gracias!!

eso era lo que faltaba ;)

saludos

0 new messages