日期:2014-05-19  浏览次数:20474 次

存储过程 不起作用 在线等
CREATE   proc   chklogin(@name   nvarchar(20),@pwd   nvarchar(40))
as
declare   @flag     int
select     @flag=count(*)     from   admin   where   username=@name   and   pwd=@pwd

if   @flag   <>   0
begin
          update   admin   set   lastlogintime=getdate()     where   username=@name
end  


return
GO
数据库的存储过程   如果用户名存在,说明登陆成功   则修改登陆时间
可是怎么也修改不了登陆时间   并且检查不到这个用户
怎么解救?????

------解决方案--------------------
CREATE proc chklogin(@name nvarchar(20),@pwd nvarchar(40))
as
if(exists(select username from admin where username=@name and pwd=@pwd))
begin
update admin set lastlogintime=getdate() where username=@name
return 1 --用户名和密码都正确
end
else
begin
return 2 --验证失败
end


return

然后在你程序里获取返回值判断
------解决方案--------------------
楼主可以加一个输出参数,在程序中判断输出参数的值
下面是我写的一个存储过程,给你参考一下
CREATE procedure login
(
@uid nvarchar(50),
@psw nvarchar(50),
@count int out
)

AS

if((SELECT count(*) from tb_users where username=@uid and password=@psw)> 0)
begin
set @count=1
end

else
set @count=0
GO