首页 新闻 赞助 找找看

sql server 可不可以写if 不是存储过程。!

0
悬赏园豆:5 [已解决问题] 解决于 2018-10-17 17:33
 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语句。

该怎么改呢
撞到南墙拆了继续走的主页 撞到南墙拆了继续走 | 初学一级 | 园豆:99
提问于:2017-10-21 16:48
< >
分享
最佳答案
0

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"

收获园豆:5
顾星河 | 大侠五级 |园豆:7169 | 2017-10-21 17:07

where 后面就是条件,你可以理解为if。

if : 如果...,就....

where:当...(什么什么的时候)

其实是一个意思

顾星河 | 园豆:7169 (大侠五级) | 2017-10-21 17:10

@七芯海棠: 不行 加了这个的话 角色 admin 都登陆不上了,

撞到南墙拆了继续走 | 园豆:99 (初学一级) | 2017-10-21 17:52

@撞到南墙拆了继续走:  原文 : “如果[dbo].[AspNetUsers] 中的 username 不等于 admin 执行代码里的sql语句。”,根据原文的意思就是后面加where条件,你现在又想让admin登上去,又不想执行sql,不太懂你想要什么,五彩斑斓的黑?

顾星河 | 园豆:7169 (大侠五级) | 2017-10-21 17:55

@七芯海棠: 可能是我没表达清除  因为添加了这个sql后 ,admin登陆不上去了,因为admin没有角色,所以想把admin排除掉。超级用户不用去判断权限。所以是当用户名不等于admin时候 去执行这个sql 所以想在sql里加个if判断。

撞到南墙拆了继续走 | 园豆:99 (初学一级) | 2017-10-23 10:21
其他回答(1)
0

If exists(...)

...

数据酷软件 | 园豆:130 (初学一级) | 2017-10-23 09:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册