2
« en: Domingo 8 de Mayo de 2005, 18:58 »
a ver, estoy intentando ejecutar este código para insertar un registro en la base de datos pero siempre me sale este error:
-------------------------------------------------------------------------------------------
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 108:orden.Connection.Open()
Línea 109:
Línea 110:orden.ExecuteNonQuery()
Línea 111:
Línea 112:orden.Connection.Close()
Archivo de origen: c:\inetpub\wwwroot\prog20b.aspx Línea: 110
Seguimiento de la pila:
[OleDbException (0x80004005): La operación debe usar una consulta actualizable.]
System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(Int32 hr) +41
System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) +174
System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) +92
System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) +65
System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) +112
System.Data.OleDb.OleDbCommand.ExecuteNonQuery() +66
ASP.prog20b_aspx.INSERTAR(Object Sender, EventArgs E) in c:\inetpub\wwwroot\prog20b.aspx:110
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +108
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +57
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
System.Web.UI.Page.ProcessRequestMain() +1292
--------------------------------------------------------------------------------
Información de versión: Versión de Microsoft .NET Framework:1.1.4322.2032; Versión de ASP.NET:1.1.4322.2032
alguien puede ayudar??? el código q estoy usando es el siguiente:
GRACIAS
-----------------------------------------------------------------------------------
<script runat=server>
' creando y cargando coneccion, adpater, dataset como variables globales
DIM coneccion AS OLEDBCONNECTION
DIM canal AS OLEDBDATAADAPTER
DIM tabla AS DATASET
SUB Page_Load(Sender As Object, E As EventArgs)
coneccion = NEW OLEDBCONNECTION("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & _
Server.MapPath("datos\db1.mdb") & ";")
' cargando el adapter con la instruccion sql
canal = NEW OLEDBDATAADAPTER("select * from enero03", coneccion)
' cargando el dataset
tabla = NEW DATASET()
canal.FILL(tabla, "enero03")
' cargando el datagrid
TABLAGRID.DATASOURCE = tabla
TABLAGRID.DATAMEMBER = "enero03"
TABLAGRID.DATABIND()
' cargando el nuevo textbox con la nueva LETRA LETRA correpondiente
END SUB
SUB INSERTAR(Sender As Object, E As EventArgs)
' creando y cargando un objeto OLEDBCOMMAND
' instruccion sql insert into enero03(listacampos) values(listadatos)
' @variable es una variable de tipo command o parametro
DIM q AS STRING
DIM orden as OLEDBCOMMAND
q = "insert into enero03(LETRA,NOMBRE,EMPRESA) values(@LETRA, @NOMBRE, @EMPRESA)"
orden = NEW OLEDBCOMMAND(q, coneccion)
orden.Parameters.Add(new OleDbParameter("@LETRA", OleDbType.VarWChar, 1))
orden.Parameters("@LETRA").Value = LETRA.Text
orden.Parameters.Add(new OleDbParameter("@NOMBRE", OleDbType.VarWChar, 30))
orden.Parameters("@NOMBRE").Value = NOMBRE.Text
orden.Parameters.Add(new OleDbParameter("@EMPRESA", OleDbType.VarWChar, 3))
orden.Parameters("@EMPRESA").Value = EMPRESA.Text
orden.Connection.Open()
orden.ExecuteNonQuery()
orden.Connection.Close()
' REFRESCANDO DATASET con los nuevos datos de la tabla en disco
canal=new OleDbDataAdapter("select * from enero03", coneccion)
' creando el dataset y cargandolo
tabla= new DataSet()
canal.Fill(tabla, "enero03")
' recargando el datagrid
TABLAGRID.DataSource=tabla.Tables("enero03").DefaultView
TABLAGRID.DataBind()
' cargando otra vez la caja de LETRA y limpiando las otras cajas
LETRA.Text=""
NOMBRE.Text=""
EMPRESA.Text=""
coneccion.Close()
END SUB
</script>