Problema con parametros

tema enviado por Yonakan en Visual Basic .NET
tema iniciado el 19/03/2009

Tengo una funcion para manejar los parametros de SQL

Public Sub Parameter(ByVal CampoParametro As String, ByVal TipoDato As SqlDbType, ByVal TamDato As Integer, ByVal Valor As String)

sqlcmd.Parameters.Add(New SqlParameter(CampoParametro, TipoDato, TamDato))

sqlcmd.Parameters(CampoParametro).Value = Valor

End Sub

Ahora desde otra funcion la invoco para pasar un parametro tinyInt a un sp y este se ejecute

Sub ActualizaStock(ByVal idprod As String, ByVal stk As Single, ByVal stka As Single, ByVal stkc As Integer, ByVal fecha As Date, ByVal dprod As String, ByVal ids As Integer, ByVal xbd As Int16)

--

fsql.Parameter("@xbdc", SqlDbType.TinyInt, 0, xbd)

--

End Sub

Pero me sale el sgte ERROR

System.OverflowException Error al convertir el valor del parametro de String a Int16 valor demasiado grande o demasiado pequeño para Int16.

Por la logica del programa el valor que estoy pasando seria 0, sin embargo me da ese error, pero cuando lo hago para ejecutar otra funcion casi identica con la misma logica me sale todo correcto.

Necesito su ayuda por favor. Gracias