con questa SP...
codice:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
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
...e con questo codice (VB)
codice:
Dim conn As New SqlConnection(stringaconnessione)
Dim cmdLogin As SqlCommand
' Preparo il command con la Stored Procedure
cmdLogin = New SqlCommand("SP_LOGIN_ID", conn)
cmdLogin.CommandType = CommandType.StoredProcedure
' Definisco il valore di ritorno
cmdLogin.Parameters.Add("id", SqlDbType.Int)
cmdLogin.Parameters("id").Direction = ParameterDirection.Output
' 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("id").Value <> -1 Then
Return True
Else
Throw New System.Data.DataException("Errore ADO.Net")
Return False
End If
Catch ex As System.Data.DataException
HttpContext.Current.Response.Write("<font color=red>WARNING:</font>" & ex.Message)
Return False
Catch ex As Exception
HttpContext.Current.Response.Write("<font color=red>WARNING:</font>" & ex.StackTrace)
Return False
Finally
conn.Close()
cmdLogin.Dispose()
End Try
...mi da errore sulla .ExecuteNonQuery 
il campo ID nella tabella è di tipo Int ed è PK