Retroceder   Foros del Web > Programación para sitios web > .NET

Respuesta
 
Herramientas Desplegado
Antiguo 13-may-2008, 15:47   #1 (permalink)
MelkorOfCat ha deshabilitado el karma
 
Fecha de Ingreso: enero-2007
Mensajes: 4
Exclamación 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

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("veneto@veneto-bcn.com");
            correo_respuesta.To.Add("cajimenez@telefonica.net");
            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 está desconectado   Responder Citando
Antiguo 14-may-2008, 17:05   #2 (permalink)
MelkorOfCat ha deshabilitado el karma
 
Fecha de Ingreso: enero-2007
Mensajes: 4
Re: System.Data.OleDb.OleDbException: La operación debe usar una consulta actualizabl

¿Nadie me puede ayudar?
MelkorOfCat está desconectado   Responder Citando
Respuesta
No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 04:39.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93