I have this very simple looking thing going on:
This
VB code does its thing:
(I'm sure it looks ugly, but bear with me.)
Code:
With cmd
.Connection = conn
.CommandType = Data.CommandType.StoredProcedure
.CommandText = "proc_checkAnswer"
End With
param = cmd.Parameters.Add(New SqlParameter("@UserID", Data.SqlDbType.Int))
param.Direction = Data.ParameterDirection.Input
param.Value = UserID
param = cmd.Parameters.Add(New SqlParameter("@SecAnswer", Data.SqlDbType.NVarChar, 30))
param.Direction = Data.ParameterDirection.Input
param.Value = Answer
'also, don't worry, the connection is already open here.
'so that isn't a problem.
Dim result As Integer = cmd.ExecuteNonQuery()
... which talks to this bad boy:
Code:
CREATE PROCEDURE proc_checkAnswer
@UserID Int,
@SecAnswer Nvarchar(30)
AS
IF (SELECT SecAnswer FROM tblUsers WHERE UserID = @UserID) = @SecAnswer
RETURN 1
ELSE
RETURN 2
And yet. I pass it everything it needs to survive, and it always returns -1. There must be something awry here.