En primer lugar agradecer la existencia de este foro, que aunque nunca había escrito ningún post, me ha ayudado con muchísimas dudas de programación Web y demás

Bueno, vamos con el problema en cuestión:
Tengo un formulario en ASP.NET que tiene que guardad unos datos en una BBDD Access. Pero al hacer el "cmd.ExecuteNonQuery();" me da el siguiente error:
System.Data.OleDb.OleDbException: La operación debe usar una consulta actualizable.
He estado mirando y la mayoría post hablan de permisos en la BBDD, pero creo que este no es mi problema, ya que la BBDD tiene el usuario ASPNET con permisos de escritura y lectura.
Aqui el error detallado que me da:
Código:
Y aquí el código .NET que estoy utilizando:Error de servidor en la aplicación '/'. -------------------------------------------------------------------------------- La operación debe usar una consulta actualizable. Descripción: Excepción no controlada al ejecutar la solicitud Web actual. Revise el seguimiento de la pila para obtener más información acerca del error y dónde se originó en el código. Detalles de la excepción: System.Data.OleDb.OleDbException: La operación debe usar una consulta actualizable. Error de código fuente: Línea 70: OleDbCommand cmd = new OleDbCommand(strsql, connconn); Línea 71: connconn.Open(); Línea 72: cmd.ExecuteNonQuery(); Línea 73: connconn.Close(); Línea 74: System.Net.Mail.MailMessage correo_respuesta = new System.Net.Mail.MailMessage(); Archivo de origen: d:\internet\contacto.aspx.cs Línea: 72 Seguimiento de la pila: [OleDbException (0x80004005): La operación debe usar una consulta actualizable.] System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) +267 System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) +192 System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) +48 System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) +106 System.Data.OleDb.OleDbCommand.ExecuteNonQuery() +108 contacto.submit_form(Object sender, EventArgs e) in d:\internet\contacto.aspx.cs:72 System.Web.UI.WebControls.LinkButton.OnClick(EventArgs e) +90 System.Web.UI.WebControls.LinkButton.RaisePostBackEvent(String eventArgument) +76 System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +177 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1746 -------------------------------------------------------------------------------- Información de versión: Versión de Microsoft .NET Framework:2.0.50727.1433; Versión ASP.NET:2.0.50727.1433
Código:
¿Alguna idea?try { OleDbConnection connconn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath(@"webcontent.mdb") + ";"); string strsql = "INSERT INTO forms (type) values ('contacto')"; OleDbCommand cmd = new OleDbCommand(strsql, connconn); connconn.Open(); cmd.ExecuteNonQuery(); connconn.Close(); System.Net.Mail.MailMessage correo_respuesta = new System.Net.Mail.MailMessage(); correo_respuesta.From = new System.Net.Mail.MailAddress("[email protected]"); correo_respuesta.To.Add("[email protected]"); correo_respuesta.Subject = "FORMULARIO VENETO ENVIADO - Web"; correo_respuesta.Body = "<p style=\"font:Arial;size:10px\">Su demanda o información ha sido enviada a Veneto</p>"; correo_respuesta.IsBodyHtml = true; correo_respuesta.BodyEncoding = System.Text.Encoding.UTF8; ; correo_respuesta.Priority = System.Net.Mail.MailPriority.Normal; System.Net.Mail.SmtpClient smtp_respuesta = new System.Net.Mail.SmtpClient(); smtp_respuesta.Host = "localhost"; smtp_respuesta.EnableSsl = false; smtp_respuesta.Send(correo_respuesta); Response.Redirect("formularioenviado.aspx"); } catch (HttpException ex) { Response.Redirect("errorenelenvio.aspx" ); }
Gracias.