Sql server SQL Server到VB.Net(如果存在)需要返回任何内容,但不';T

Sql server SQL Server到VB.Net(如果存在)需要返回任何内容,但不';T,sql-server,vb.net,stored-procedures,Sql Server,Vb.net,Stored Procedures,我有这个: IF EXISTS (SELECT 1 FROM User_Passwords WHERE up_Password = @CurrentPassword) PRINT 'Bad Password' --RETURN TRUE ELSE 从我遇到的情况来看,我需要我的SP返回一些东西,1或0,或字符串/varchar,这样我就可以在VB端做一些工作。但是现在,它没有返回任何东西,除非我没有正确地调用它。这是VB代码: Public Funct

我有这个:

IF EXISTS 
    (SELECT 1
    FROM User_Passwords
    WHERE up_Password = @CurrentPassword)
    PRINT 'Bad Password'
    --RETURN TRUE
ELSE
从我遇到的情况来看,我需要我的SP返回一些东西,1或0,或字符串/varchar,这样我就可以在VB端做一些工作。但是现在,它没有返回任何东西,除非我没有正确地调用它。这是VB代码:

Public Function UpdatePasswords()

    Dim objCommand As New SqlCommand("Update_Passwords", DatabaseInterface_.Connection)
    objCommand.CommandType = CommandType.StoredProcedure
    objCommand.Parameters.AddWithValue("@ua_pk", ua_pk_)
    objCommand.Parameters.Add(New SqlParameter With {.ParameterName = "@ResetDaysAmount", .SqlDbType = SqlDbType.Int, .Value = Company.GetSetting("PasswordExpireDays", SettingMisc.ReturnDataType.Integer_)})
    objCommand.Parameters.Add(New SqlParameter With {.ParameterName = "@AllowedNumberOfPasswords", .SqlDbType = SqlDbType.Int, .Value = Company.GetSetting("NumberOfPasswords", SettingMisc.ReturnDataType.Integer_)})
    objCommand.Parameters.Add(New SqlParameter With {.ParameterName = "@CurrentPasswordDate", .SqlDbType = SqlDbType.Date, .Value = ua_PasswordDate_})
    objCommand.Parameters.Add(New SqlParameter With {.ParameterName = "@CurrentPassword", .SqlDbType = SqlDbType.VarChar, .Value = ua_Password_})

    If objCommand.ExecuteScalar.ToString() = "Bad Password" Or 1 Then
        Return True
    Else
        Return False
    End If

End Function

您应该使用SELECT语句向代码返回一些内容

IF EXISTS (SELECT 1 FROM User_Passwords WHERE up_Password = @CurrentPassword)
    SELECT 1
ELSE
    SELECT 0
然后你的代码是

Dim result = Convert.ToInt32(objCommand.ExecuteScalar())
Return If(result = 1, True, False)

我变得非常沮丧。我不能直接思考。非常感谢。你救了我的命,但这不是我所希望的。当Currentpassword=表中的任何密码时,它不会返回1。您完全改变了原来的问题。现在它比询问记录是否存在要复杂得多。现在问题出在您庞大的存储过程的其他地方。在到达IF存在的点之前。我可以看到很多删除,我无法理解那里发生了什么对不起,但是也许你应该问一个新问题,而不是重新打开一个旧问题好的,我将取消编辑并运行一个新问题。谢谢,不用做exist,你只需一次电话就可以完成,而不用先做exist,然后再做select……什么意思?