下表是我用来管理登录密码的地方。登录表字段:userid、emailaddress、password、loginAttents、lastlogindate、loginstatus
在我的登录逻辑中,
1. If login password matches :
1. I update LastLoginDate field with the current date and time
2. Update LoginAttempts = 0
2. If the EmailAddress (login user name) is correct but PassWord is wrong :
1. I increment LogginAttempts by 1
2. If LoginAttempts > 5 then update LoginStatus = "LOCKED"
3. No need to update anything if EmailAddress is wrong
目前,我通过以下查询读取表:
string Query = @"SELECT *,GROUP_CONCAT(user_role.USER_ROLE_ROLE SEPARATOR ',') AS ROLES " +
"FROM login " +
"INNER JOIN user_role ON " +
"user_role.USER_ROLE_USER_ID = login.LOGIN_USER_ID AND login.LOGIN_EMAIL = @Parameter1";
然后我比较字段以获得正确的密码,并使用以下sql查询更新表:
Query = @"UPDATE login SET " +
"LOGIN_ACCOUNT_STATUS = @Parameter2," +
"LOGIN_LOGIN_ATTEMPTS = @Parameter3," +
"LOGIN_LAST_LOGIN_DATE = @Parameter4," +
"LOGIN_LAST_LOGIN_LOCATION = @Parameter5 " +
"WHERE LOGIN_EMAIL=@Parameter1";
这是在外部实现的(比较sql之外的值),工作正常。但我确信这是可以在sql语句中实现的。有人能帮我实现sql查询吗?如果可能的话,我想看看如何将select和update合并到一个sql字段中,并在sql查询中进行比较。我只是想让代码变得优雅。我的c#函数目前有100行代码,如果全部用sql实现,代码可能会大大减少。
谢谢,pg
暂无答案!
目前还没有任何答案,快来回答吧!