Foros del Web » Programación para mayores de 30 ;) » .NET »

[SOLUCIONADO] como introducir valores en insert

Estas en el tema de como introducir valores en insert en el foro de .NET en Foros del Web. Hola estoy intentando hacer un insert pasandole los valores de esta forma que veréis en el codigo de abajo pero tengo un problema: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); ...
  #1 (permalink)  
Antiguo 07/02/2013, 09:42
 
Fecha de Ingreso: abril-2012
Mensajes: 449
Antigüedad: 12 años
Puntos: 7
Exclamación como introducir valores en insert

Hola estoy intentando hacer un insert pasandole los valores de esta forma que veréis en el codigo de abajo pero tengo un problema:
Código vb.net:
Ver original
  1. Protected Sub guardarTablaZSAPFacturableSI(ByVal numhoja As String, ByVal mes As String, ByVal año As String)
  2.         Dim mytrans As OracleTransaction
  3.         Dim fechacreacion As Date
  4.         Dim conn As New OracleConnection()
  5.         conn.ConnectionString = ConfigurationManager.ConnectionStrings("conexionOracleDesa").ConnectionString.ToString
  6.         Dim sql As String
  7.  
  8.         sql = "insert into sapsr3.zgastos_gen (mandt,zig,prctr,kostl,aufnr,pspid,erdat,zperiod,zejercic,tratado,xblnr) "
  9.         sql = sql + "values('111','@numhoja','@codigolinea','@ceco','@orden','@proyecto','@fechacreacion','@mes','@año','0','@nombreApellidos')"
  10.  
  11.         Dim comm As New OracleCommand(sql, conn)
  12.  
  13.         Try
  14.             With comm
  15.                 .CommandType = CommandType.Text
  16.                 'pasarle siempre
  17.                 .Parameters.Add("@mandt", 111)
  18.                 .Parameters.Add("@numhoja", numhoja)
  19.                 .Parameters.Add("@codigolinea", codigolinea)
  20.                 .Parameters.Add("@ceco", ceco)
  21.                 .Parameters.Add("@orden", orden)
  22.                 If proyecto = "" Then
  23.                 Else
  24.                     .Parameters.Add("@proyecto", proyecto)
  25.                 End If
  26.                 .Parameters.Add("@fechacreacion", fechacreacion)
  27.                 '.Parameters.Add("@tratado", 0)
  28.                 .Parameters.Add("@nombreApellidos", nombre)
  29.  
  30.                 If importeTotal = "0.00" Then
  31.                     .Parameters.Add("@importeTotal", DBNull.Value)
  32.                 Else
  33.                     .Parameters.Add("@importeTotal", importeTotal)
  34.                 End If
  35.                 .Parameters.Add("@mes", mes)
  36.                 .Parameters.Add("@año", año)
  37.             End With
  38.  
  39.             Using conn
  40.                 conn.Open()
  41.  
  42.                 mytrans = conn.BeginTransaction()
  43.                 Try
  44.                     With comm
  45.                         .Transaction = mytrans
  46.                         .ExecuteNonQuery()
  47.                         .Dispose()
  48.                     End With
  49.                     mytrans.Commit()
  50.                 Catch ex As OracleException
  51.                     mytrans.Rollback()
  52.                     MsgBox("Error en BD" & Chr(13) & Chr(13) & ex.Message)
  53.                     'mensaje("Error en BD" & Chr(13) & Chr(13) & ex.Message)
  54.                 End Try
  55.             End Using
  56.         Catch ex As Exception
  57.  
  58.             MsgBox("Error en BD" & Chr(13) & Chr(13) & ex.Message)
  59.             'mensaje("Error en BD" & Chr(13) & Chr(13) & ex.Message)
  60.         Finally
  61.             conn.Close()
  62.             conn.Dispose()
  63.         End Try
  64.     End Sub

El problema es que se me guarda el la base de datos @mes, @año,.... en vez de guardarse el valor.

¿Que es lo que estoy haciendo mal?
__________________
Gracias por todo;

Un saludo
  #2 (permalink)  
Antiguo 07/02/2013, 09:49
 
Fecha de Ingreso: febrero-2008
Mensajes: 69
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: como introducir valores en insert

Tienes que quitar las comillas. Los parametros se introducen directamente sin ellas
__________________
Aprendiendo a programar

Agradezco comentarios ;)
  #3 (permalink)  
Antiguo 08/02/2013, 01:42
 
Fecha de Ingreso: abril-2012
Mensajes: 449
Antigüedad: 12 años
Puntos: 7
Respuesta: como introducir valores en insert

Cita:
Iniciado por Altear Ver Mensaje
Tienes que quitar las comillas. Los parametros se introducen directamente sin ellas
si le quito las comillas dejándolo así, me sale un error ORA-00936: missing expression
Código vb.net:
Ver original
  1. sql = "insert into sapsr3.zgastos_gen (mandt,zig,prctr,kostl,aufnr,pspid,erdat,zperiod,zejercic,tratado,xblnr) "
  2.         sql = sql + "values('111',@numhoja,@codigolinea,@ceco,@orden,@proyecto,@fechacreacion,@mes,@año,'0',@nombreApellidos)"
__________________
Gracias por todo;

Un saludo
  #4 (permalink)  
Antiguo 08/02/2013, 02:10
 
Fecha de Ingreso: octubre-2012
Ubicación: España
Mensajes: 30
Antigüedad: 11 años, 5 meses
Puntos: 2
Respuesta: como introducir valores en insert

Hola, yo suelo usar procedimientos almacenados, algo así:

CREATE PROCEDURE insertarIncidencia
@NombreUsuario nvarchar(256),
@Descripcion text
AS
insert into Incidencias (Descripcion,NombreUsuario) values (@NombreUsuario,@Descripcion)

así que pienso que en tu sentencia sql debes declarar los @loquesea y el tipo de datos. Como te digo, yo suelo crear el procedimiento almacenado en la bd y luego lo llamo desde el código
  #5 (permalink)  
Antiguo 08/02/2013, 03:08
 
Fecha de Ingreso: abril-2012
Mensajes: 449
Antigüedad: 12 años
Puntos: 7
Respuesta: como introducir valores en insert

Cita:
Iniciado por thanos Ver Mensaje
Hola, yo suelo usar procedimientos almacenados, algo así:

CREATE PROCEDURE insertarIncidencia
@NombreUsuario nvarchar(256),
@Descripcion text
AS
insert into Incidencias (Descripcion,NombreUsuario) values (@NombreUsuario,@Descripcion)

así que pienso que en tu sentencia sql debes declarar los @loquesea y el tipo de datos. Como te digo, yo suelo crear el procedimiento almacenado en la bd y luego lo llamo desde el código
Yo lo he intentado haciéndolo de esta forma también:
Código vb:
Ver original
  1. .Parameters.Add("@PC", OleDb.OleDbType.VarChar).Value = Me.txtpcname.Text
Pero me lanza este error: referencia a un objeto no establecida como instancia de un objeto
__________________
Gracias por todo;

Un saludo
  #6 (permalink)  
Antiguo 08/02/2013, 06:53
Avatar de seba123neo  
Fecha de Ingreso: febrero-2007
Ubicación: Esperanza, Santa Fe
Mensajes: 1.046
Antigüedad: 17 años, 2 meses
Puntos: 19
Respuesta: como introducir valores en insert

estas usando un objeto de tipo OracleCommand, y en el parametro pones Oledb que no tiene nada que ver.

esa libreria Oracle que usas debe tener sus tipos de datos ya, usa esos.

saludos.
__________________
" Todos Somos Ignorantes; lo que pasa es que no todos ignoramos las mismas cosas " - Albert Einstein
  #7 (permalink)  
Antiguo 11/02/2013, 03:50
 
Fecha de Ingreso: abril-2012
Mensajes: 449
Antigüedad: 12 años
Puntos: 7
Respuesta: como introducir valores en insert

Cita:
Iniciado por seba123neo Ver Mensaje
estas usando un objeto de tipo OracleCommand, y en el parametro pones Oledb que no tiene nada que ver.

esa libreria Oracle que usas debe tener sus tipos de datos ya, usa esos.

saludos.

Tienes razón, lo he cambiado y no me lanza mas errores. Gracias
__________________
Gracias por todo;

Un saludo

Etiquetas: bd, insert, introducir, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:41.