public Role GetRoleCode(string UserId) { SqlParameter value = new SqlParameter(); value.Value = UserId; value.SqlDbType = System.Data.SqlDbType.NVarChar; value.ParameterName = "id"; var result = applicationDBContext.Database .SqlQuery<Role>(@"select b.RoleCode,b.RoleName from [dbo].[AspNetUsers] a left join [dbo].[角色] b on a.AccountRole=b.ID where a.id=@id", value).FirstOrDefault(); return result; }
因为admin是没有角色的 所以想要在sql 里做一个判断
如果[dbo].[AspNetUsers] 中的 username 不等于 admin 执行代码里的sql语句。
该怎么改呢
where后面跟个判断
select b.RoleCode,b.RoleName from [dbo].[AspNetUsers] a left join [dbo].[角色] b on a.AccountRole=b.ID where a.id=@id" and a.username !="admin"
where 后面就是条件,你可以理解为if。
if : 如果...,就....
where:当...(什么什么的时候)
其实是一个意思
@七芯海棠: 不行 加了这个的话 角色 admin 都登陆不上了,
@撞到南墙拆了继续走: 原文 : “如果[dbo].[AspNetUsers] 中的 username 不等于 admin 执行代码里的sql语句。”,根据原文的意思就是后面加where条件,你现在又想让admin登上去,又不想执行sql,不太懂你想要什么,五彩斑斓的黑?
@七芯海棠: 可能是我没表达清除 因为添加了这个sql后 ,admin登陆不上去了,因为admin没有角色,所以想把admin排除掉。超级用户不用去判断权限。所以是当用户名不等于admin时候 去执行这个sql 所以想在sql里加个if判断。
If exists(...)
...