ASP.NET成员资格角色

时间:2012-04-30 14:41:30

标签: asp.net mysql asp.net-membership sql-like

我正在尝试将用户添加到某个角色,并且我得到'用户已经在角色中',用户实际上没有任何角色,我跟踪了在Roles.IsUserInRole(user_name)后面运行的查询,它就像这样:

SELECT COUNT(*) FROM my_aspnet_usersinroles uir 
JOIN my_aspnet_users u ON uir.userId=u.id
JOIN my_aspnet_roles r ON uir.roleId=r.id
WHERE u.applicationId=1 AND 
u.name LIKE 'user_name' AND r.name LIKE 'rolename'

现在的问题是我有另一个用户(user.name)并且该用户已经在该角色中,但由于(_)在类似模式中获得此结果。 请注意我正在使用MySql会员提供商,有什么想法吗?

感谢

2 个答案:

答案 0 :(得分:1)

您应该能够使用[]或ESCAPE子句转义下划线字符(更适合您的情况。)

http://web.archive.org/web/20150519072547/http://sqlserver2000.databases.aspfaq.com:80/how-do-i-search-for-special-characters-e-g-in-sql-server.html

请原谅SQL2000参考资料......

答案 1 :(得分:0)

LIKE子句中的下划线充当外卡,因此该位置的任何字符都将匹配。

如果您正在寻找特定记录,为什么不做WHERE u.name ='user_name'?