• Miércoles 6 de Noviembre de 2024, 06:34

Autor Tema:  Insetar En La Base De Datos  (Leído 2075 veces)

ikari_01

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Insetar En La Base De Datos
« en: Domingo 8 de Mayo de 2005, 18:58 »
0
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>

ikari_01

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Insetar En La Base De Datos
« Respuesta #1 en: Domingo 8 de Mayo de 2005, 20:39 »
0
Ya resolví el problema, pa quien tb le pase esto q mira esta dirección:

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