Foros del Web » Programación para mayores de 30 ;) » .NET »

Error con una Insert

Estas en el tema de Error con una Insert en el foro de .NET en Foros del Web. Hola otra vez, me he creado una base de datos en Access y mediante una aplicación en ASP .Net estoy accediendo a ésta. El problema ...
  #1 (permalink)  
Antiguo 01/06/2004, 04:01
 
Fecha de Ingreso: abril-2002
Mensajes: 14
Antigüedad: 22 años
Puntos: 0
Pregunta Error con una Insert

Hola otra vez,

me he creado una base de datos en Access y mediante una aplicación en ASP .Net estoy accediendo a ésta. El problema es que con una tabla determinada que me he creado más tarde no me deja ni actualizar ni insertar, con las demás no tengo problemas. Al crear una insert chorrona como:
Insert into registrados (usuario, password) values (1,1)
me da el siguiente error (ambos campos son numéricos):

System.Data.OleDb.OleDbException: Error de sintaxis en la instrucción INSERT INTO. at System.Data.OleDb.OleDbCommand.ExecuteCommandTextE rrorHandling(Int32 hr) at System.Data.OleDb.OleDbCommand.ExecuteCommandTextF orSingleResult(tagDBPARAMS dbParams, Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteCommandText( Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteCommand(Comm andBehavior behavior, Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteReaderIntern al(CommandBehavior behavior, String method) at System.Data.OleDb.OleDbCommand.ExecuteNonQuery() at Acceso_Colegio.Registrarse.cmdEnviar_Click(Object sender, EventArgs e) in C:\Cosas\Ejerciciosaspnet\Acceso_Colegio\Registrar se.aspx.vb:line 78

He ejecutado la instrucción en Access y todo va bien. También he mirado los permisos de la base de datos y de la tabla y tengo acceso total.
¿Alguien me puede ayudar?
El código completo es el siguiente:

'Declaración de variables
strConexion = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("BaseDatos\CopiaColegio.mdb") & ";"
Try
miConexion = New OleDbConnection(strConexion)
strSql = "insert into registrados (usuario, password) values (1,1)"
miComando = New OleDbCommand(strSql, miConexion)
miConexion.Open()
intNum = miComando.ExecuteNonQuery
If intNum = 0 Then
lblResul.Text = "No se ha podido realizar el registro.<br>Inténtelo más tarde."
Else
lblResul.Text = "Ha sido registrado."
End If
miConexion.Close()

Catch ex As Exception
lblResul.Text &= "<br>" & ex.ToString
End Try

If Not miConexion Is Nothing Then
miConexion.Close()
End If
  #2 (permalink)  
Antiguo 01/06/2004, 04:41
Avatar de GeRuNdIo  
Fecha de Ingreso: marzo-2004
Ubicación: Sanlúcar de Barrameda, Cádiz
Mensajes: 232
Antigüedad: 20 años, 1 mes
Puntos: 2
Hola!!
La verdad, no sé porque no te funciona, lo veo correcto.
Por probar, (si quieres), cambia la cadena de conexion y ponle la ruta directa (quitale el Server.MapPath).
Y también prueba a cambiar la orden INSERT, quitale los nombres de los campos.
También te recomiendo que revises los campos de la BD, sus tipos.

Suerte!!
__________________
Una buena forma de sacar las castañas del fuego sin quemarse: LEE FOROSDELWEB..... :si:
------
F.P.R. MCAD .NET
  #3 (permalink)  
Antiguo 01/06/2004, 05:30
Avatar de SunDarK  
Fecha de Ingreso: diciembre-2003
Ubicación: Jerez de la Frontera
Mensajes: 1.193
Antigüedad: 20 años, 4 meses
Puntos: 8
Estoy con gerundio,es por la cadena de conexión,prueba la ruta absoluta y si es asi es que no esta bien construida(habria que ver como ponemos las " para que las pille bien),venga prueba y nos cuentas,un saludo

Última edición por SunDarK; 01/06/2004 a las 05:33
  #4 (permalink)  
Antiguo 01/06/2004, 09:38
Avatar de lucxx  
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 321
Antigüedad: 20 años, 5 meses
Puntos: 0
También podría ser esto:

intNum = miComando.ExecuteNonQuery

ponlo así:

intNum = miComando.ExecuteNonQuery()
Y una recomendación: cierra la conexión con la BD en el bloque Finally:
try
...
catch
...
finally
conexion.Close()
end try

Si lo pones en el try y se produce una excepcion antes de llegar a la linea en que se cierra la conexión, esta queda abierta. Si la pones en el finally, se cierra pase lo que pase.

Salu2
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:31.