CREATE proc chklogin(@name nvarchar(20),@pwd nvarchar(40))
as
declare @flag  int
select  @flag=count(*)  from admin where username=@name and pwd=@pwdif @flag <> 0
begin
     update admin set lastlogintime=getdate()  where username=@name
end 
return
GO
数据库的存储过程 如果用户名存在,说明登陆成功 则修改登陆时间
可是怎么也修改不了登陆时间 并且检查不到这个用户
怎么解救?????

解决方案 »

  1.   

    begin
        update [admi] set lastlogintime=GETDATE() where [username]=@name
    end可能是关键字的问题,加上括号试下
      

  2.   

    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
    end
    return
      

  3.   

    好了问题解决了 可又出现了一个问题:
    存储过程: 如果用户名存在 则修改用户的登陆日期
    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
    end
    return登陆事件:
    sub login_click()
     Dim con As SqlConnection = DB.con()
                    con.Open()
                    Dim cmd As SqlCommand = New SqlCommand("chklogin", con)
                    cmd.CommandType = CommandType.StoredProcedure                cmd.Parameters.Add(New SqlParameter("@name", SqlDbType.NVarChar, 20))
                    cmd.Parameters("@name").Value = txtname
                    cmd.Parameters.Add(New SqlParameter("@pwd", SqlDbType.NVarChar, 40))
                    cmd.Parameters("@pwd").Value = txtpwd
                    cmd.ExecuteNonQuery()
                    con.Close()
    end sub怎样判断用户名或密码是否正确?在哪个地方判断啊???              
                    
                
      

  4.   

    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然后在你程序里获取返回值判断
      

  5.   

    楼主可以加一个输出参数,在程序中判断输出参数的值
    下面是我写的一个存储过程,给你参考一下
    CREATE procedure login
    (
      @uid nvarchar(50),
      @psw nvarchar(50),
      @count int out
    )ASif((SELECT count(*)  from tb_users  where username=@uid   and    password=@psw)>0)
    begin
    set @count=1
    endelse
    set @count=0
    GO