Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   .NET (http://www.forosdelweb.com/f29/)
-   -   System.Data.OleDb.OleDbException: La operación debe usar una consulta actualizable. (http://www.forosdelweb.com/f29/system-data-oledb-oledbexception-operacion-debe-usar-consulta-actualizable-586113/)

MelkorOfCat 13/05/2008 15:47

System.Data.OleDb.OleDbException: La operación debe usar una consulta actualizable.
 
Hola a todos:

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 :aplauso:

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:

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

Y aquí el código .NET que estoy utilizando:

Código:

        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" );
        }

¿Alguna idea?

Gracias.

MelkorOfCat 14/05/2008 17:05

Re: System.Data.OleDb.OleDbException: La operación debe usar una consulta actualizabl
 
¿Nadie me puede ayudar? :'(:'(:'(


La zona horaria es GMT -6. Ahora son las 23:14.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.