codice:
ALTER PROCEDURE [dbo].[SP_LOGIN_ID]
(
 @USERID Varchar(20),
 @PASSWORD Varchar(6), 
 @ID INT OUTPUT
)
AS

SELECT @ID = ID FROM TBLOCALI WHERE userid = @USERID AND pwd = @PASSWORD
IF @ID IS NULL SET @ID = -1

RETURN @id
mi dice che la SP si aspetta un @ID che non fornisco

questo e' il codice che uso per connettermi alla SP:
codice:
        Dim conn As New SqlConnection(stringaconnessione)
        Dim cmdLogin As SqlCommand
        Dim parValoreRitorno As SqlParameter

        ' Preparo il command con la Stored Procedure
        cmdLogin = New SqlCommand("SP_LOGIN_ID", conn)
        cmdLogin.CommandType = CommandType.StoredProcedure

        ' Definisco il valore di ritorno
        parValoreRitorno = cmdLogin.Parameters.Add("intID", SqlDbType.Int)
        parValoreRitorno.Direction = ParameterDirection.ReturnValue

        ' Aggiungo i parametri di input
        cmdLogin.Parameters.Add("@USERID", SqlDbType.VarChar).Value = Nomeutente
        cmdLogin.Parameters.Add("@PASSWORD", SqlDbType.VarChar).Value = Password

        ' Eseguo
        Try
            conn.Open()
            cmdLogin.ExecuteNonQuery()

            If cmdLogin.Parameters("intID").Value <> -1 Then
                Return cmdLogin.Parameters("intID").Value
            Else
                Throw New System.data.DataException("Errore ADO.Net")
                Return -1
            End If
        Catch ex As System.data.DataException
            HttpContext.Current.Response.Write("<font color=red>WARNING:</font>" & ex.Message)
            Return -1
        Catch ex As Exception
            HttpContext.Current.Response.Write("<font color=red>WARNING:</font>" & ex.StackTrace)
            Return -1
        Finally
            conn.Close()
            cmdLogin.Dispose()
        End Try