小巧的参数没有被替换

时间:2017-06-12 21:20:28

标签: c# sql dapper roles

我已经在这个项目上使用了Dapper好几个月,并且没有任何问题。但是现在我必须使用原始SQL而不是使用dapper的存储过程来创建和更改数据库中的 Users Roles ,因为现在不推荐使用sp_addrolemember

我使用它作为我的短小精悍的代码

conn.Open();
var p = new DynamicParameters();
p.Add("@UserLogin", user);
p.Add("@UserRole", role);
conn.Execute("Create User @UserLogin", p);
conn.Execute("ALTER ROLE @UserRole ADD MEMBER @UserLogin", p);   

我一直收到同样的错误:

  

@UserLogin的语法无效

我已将domain\username作为登录信息传递给我,并且我已经在没有domain\的情况下尝试了它。一样。有人可以对此有所了解吗?

1 个答案:

答案 0 :(得分:-1)

我不熟悉Dapper,但您可以尝试将参数值嵌入到要发送的SQL字符串中:

conn.Open();
conn.Execute("Create User " + user);
conn.Execute("ALTER ROLE " + role + " ADD MEMBER " + user);  

请注意,这会带来安全风险,并可能导致其他问题!