Insertar nuevo registro

03/12/2005 - 15:17 por Victor Herrera | Informe spam
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

Preguntas similare

Leer las respuestas

#1 A.Poblacion
04/12/2005 - 10:38 | Informe spam
"Victor Herrera" wrote in message
news:
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.




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.
Respuesta Responder a este mensaje
#2 Victor Herrera
05/12/2005 - 00:25 | Informe spam
Muchas gracias!!

eso era lo que faltaba ;)

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