insertar datos en base de datos con vb.net

ikari_01
08 de Mayo del 2005
a ver, estoy intentando ejecutar este código para insertar un registro en la base de datos pero siempre me sale este error:

-------------------------------------------------------------------------------------------



Cita:
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:inetpubwwwrootprog20b.aspx Línea: 110

Seguimiento de la pila:


[OleDbException (0x80004005): La operación debe usar una consulta actualizable.]
System.Data.OleDb.OleDbCommand.ExecuteCommandTextE rrorHandling(Int32 hr) +41
System.Data.OleDb.OleDbCommand.ExecuteCommandTextF orSingleResult(tagDBPARAMS dbParams, Object& executeResult) +174
System.Data.OleDb.OleDbCommand.ExecuteCommandText( Object& executeResult) +92
System.Data.OleDb.OleDbCommand.ExecuteCommand(Comm andBehavior behavior, Object& executeResult) +65
System.Data.OleDb.OleDbCommand.ExecuteReaderIntern al(CommandBehavior behavior, String method) +112
System.Data.OleDb.OleDbCommand.ExecuteNonQuery() +66
ASP.prog20b_aspx.INSERTAR(Object Sender, EventArgs E) in c:inetpubwwwrootprog20b.aspx:110
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +108
System.Web.UI.WebControls.Button.System.Web.UI.IPo stBackEventHandler.RaisePostBackEvent(String eventArgument) +57
System.Web.UI.Page.RaisePostBackEvent(IPostBackEve ntHandler sourceControl, String eventArgument) +18
System.Web.UI.Page.RaisePostBackEvent(NameValueCol lection 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


-----------------------------------------------------------------------------------



Cita:
<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("datosdb1.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>

ikari_01
08 de Mayo del 2005
Ya resolví el problema, a quien le ocurre lo mismo que mire:

http://www.us.es/foros/read.php?f=54&i=104&t=104