CLR: .Net / Mono / Boo / Otros CLR > VB .NET
Vb.net No Acepta Parametro De Sql
(1/1)
miky_p:
buenas a todos, una consulta stoy haciendo un mantenimiento y quiero insertar un nuevo registro y q me aparesca el numero consecutivo, para esto hice un procedimiento en Sql (con varios type y uno de ellos es un select)y al parecer en Sql Funciona, pero al pasar el parametro de retorno al VB.net es te me retorna 0 y no el numero (habiendo + de 10 filas ya ingresadas)
mi codigo en VB.net es algo asi (esta en una clase)
--- Código: Text --- Public Function AREAS_CORRELATIVO() As Int32 Dim objcn As New SqlConnection("server=.;database=una;uid=sa") Dim objcmd As New SqlCommand objcmd.Connection = objcn objcmd.CommandText = "XXX_AREAS" objcmd.CommandType = CommandType.StoredProcedure Dim objpar1 As New SqlParameter("@TYPE", SqlDbType.SmallInt) objpar1.Value = 5 objcmd.Parameters.Add(objpar1) . . . Dim objpar7 As New SqlParameter("@SALIDA_Correlativo", SqlDbType.Int) objpar7.Direction = ParameterDirection.Output objpar7.Value = 0 objcmd.Parameters.Add(objpar7) objcn.Open() AREAS_TRABAJO_INFOP_CORRELATIVO = objcmd.Parameters("@SALIDA_Correlativo").ValueEnd Function
la tabla AREA el campo codigo es int
mi codigo en SQL es asi (tiene type = 1 "insert", type = 2 "delete", etc):
--- Código: Text --- CREATE PROCEDURE XXX_AREAS(@TYPE smallint,@CoAr INT, --- SOLO FUNCIONA PARA UPDATE, ELIMINAR, BUSQUEDA@DeAr VARCHAR(25),@SALIDA_Correlativo int output)ASDECLARE @CORRELATIVO INTBEGIN -------- INSERTAR IF @TYPE = 1 BEGIN INSERT INTO AREA (DeAr) VALUES(@DeAr) END . . . ------- NUMERO CORRELATIVO IF @TYPE = 5 BEGIN SELECT @CORRELATIVO=COUNT(*) FROM AREA SET @SALIDA_Correlativo = @CORRELATIVO + 1 ENDEND GO
y al probarlo en SQL sale
--- Código: Text --- DECLARE @SALIDA_RPARETRA INTexec XXX_AREAS_DE_TRABAJO_RPARETRA 5, '0', 'Almacen', @SALIDA_Correlativo OUTPUTPRINT @SALIDA_Correlativo ---------------------------------------------------------------------------15
no entiendo x q no me devuelve el valor, si alguien me pudiera ayudar me seria de mucha ayuda, de ante mano muchas gracias :huh: ;)
senzao18:
Pues casi estoy seguro que despues de abrir la coneccion te falta poner
--- Código: Text --- objcmd.ExecuteNonQuery. Si no como vas a ejecutar el procedimiento almacenado jeje :D
Navegación
Ir a la versión completa