今天写了一个简单的存储过程,目的是用来检验登录信息的!本以为是件非常简单的事情,可是没想到………… 开始的时候写了个存储过程:如下:
ALTER PROCEDURE [dbo].[CheckLogin]
@Uid varchar, @Pwd varchar, @Count int output
AS begin
if exists (SELECT Name from Login where (Name=@Uid) and (Pwd=@Pwd))
set @Count=1
else if exists(select Name from Login where Name=@Uid)
set @Count=2
else set @Count=0
end
可是调试的时候出现了这样的情况:在输入了正确的用户名之后,在输入正确的密码,再此密码之后加上任意的字符, 然后点击登录,此时密码是错误的,但是还是能过验证通过!为什么呢?调试,一遍又一遍的调试!终于找到了错误的原因了啊:那就是在存储过程中没有给变量加上大小啊,这样写应该:
ALTER PROCEDURE [dbo].[CheckLogin]
@Uid varchar(50), @Pwd varchar(50), @Count int output
AS
begin
if exists (SELECT Name from Login where (Name=@Uid) and (Pwd=@Pwd))
set @Count=1
else if exists(select Name from Login where Name=@Uid)
set @Count=2
else set @Count=0
end
这样运行就可以了啊!
真不知道为什么啊,折腾了大半天啊!
呵呵!