ASP.NET - PROC ALMAC. SQL + ASP.NET (VB)

   
Vista:

PROC ALMAC. SQL + ASP.NET (VB)

Publicado por maxi (6 intervenciones) el 10/09/2008 19:53:33
Hola
Estoy intentando resolver esto ya hace algunos dias, y estoy convencido
de que el error es simple.
Necesito recuperar un ID de usuario de una tabla, para hacerlo
realizo un select con un campo llamado codigo que también es único para cada
registro, de esta forma devería recuperar el ID sin problemas.

Procedimiento ALMACENADO sql server 2000

cerate procedure get_idusuario_by_codigo
@IDusuario int output,
@CODIGO varchar(50)
AS
SELECT @IDusuario=tabla.IDusuario
FROM tabla
WHERE tabla.CODIGO=@CODIGO

______________________________________________________________________________________
Fúncion para recuperar el ID desde asp.net(VB)

Public Function get_idusuario_by_codigo(ByVal codigo As String) As Integer
objconn = New sqlconnection(strconn)
objcmd = New sqlcommand("get_idusuario_by_codigo", objconn)
objcmd.Commandtype = Commandtype.StoredProcedure
objparam = New sqlparameter
objparam = objcmd.parameters.Add("@IDusuario", sqldbType.int)
objparam.direction = ParameterDirection.Output
objparam = objcmd.parameters.Add("@CODIGO", sqldbType.varchar, 50)
objparam.direction = ParameterDirection.Input
objparam.value = trim(Codigo)

Try
objconn.open()
objreader = objcmd.executeReader()
If objreader.read() Then
Return (objreader.getvalue(0))
Else
Return (-1)
End If

Catch ex As Exception
Return (-2) ' si genera error
Finally
objconn.close()
End Try
End Function

Cuando pruebo la función desde el query analizer de sql 2000 con el siguiente código

------------------------------------------------------------------------------------
Declare @Codigo varchar(50)
declare @IDusuario int
exec get_idusuario_by_codigo @IDusuario output,'25435910mh0qtwmzbl3toc45dxisnu55'
select @IDusuario
------------------------------------------------------------------------------------
'25435910mh0qtwmzbl3toc45dxisnu55' (es un ejemplo de un codigo existente, que deberia
arrojar un ID)

el resultado es correcto, me tira el ID de usuario que necesito. Sin embargo al ejecutar la función
desde asp.net(VB) el resultado es (-1) Esto quiere decir que no encuentra/lee nigun registro.
El error tiene que estar en la funcion de asp.net, sin embargo no lo encuentro.
Cualquier ayuda posible es desde ya agradecida.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:PROC ALMAC. SQL + ASP.NET (VB)

Publicado por miguel zarate (121 intervenciones) el 10/09/2008 22:00:23
Cuando estas haciendo un select no tienes que declarar output a los campos,
por ejemplo:

@CODIGO varchar(50)
AS
SELECT IDusuario
FROM tabla
WHERE tabla.CODIGO=@CODIGO

ahora en el codigo en Net procura elimina la referencia a ese parametro:
objparam = objcmd.parameters.Add("@IDusuario", sqldbType.int)
objparam.direction = ParameterDirection.Output

saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar