0

Я использую .net Членство в управлении пользователями, я хотел бы сделать страницу для администратора, в которой перечислены все детали пользователей.sql запрос для списка всех сведений о пользователе в членстве

Система членства создала таблицы на моем сервере базы данных sql, и я пытаюсь получить всю информацию по запросу, но так или иначе запрос ничего не возвращает.

это соответствующие таблицы, созданные на сервере:

Membership

Я попробовал этот запрос: (MS SQL 2008)

select u.UserName, m.Email, m.CreateDate, m.LastLoginDate, r.RoleName from dbo.aspnet_Users u, dbo.aspnet_Membership m, dbo.aspnet_UsersInRoles uir, aspnet_Roles r where (u.UserId=m.UserId) and (m.UserId=uir.UserId) and (uir.RoleId=r.RoleId) 

но ничего не возвращает, но когда я пытаюсь:

select u.UserName, r.RoleName from dbo.aspnet_Users u, dbo.aspnet_UsersInRoles uir, aspnet_Roles r where (u.UserId=uir.UserId) and (uir.RoleId=r.RoleId) 

Он возвращает таблицу с именем пользователя и ролью. Я думаю, проблема связана с полем идентификатора пользователя членства, но я не знаю, как это объяснить.

ответ

0

Попробуйте это:

where (u.UserId=uir.UserId) and (m.UserId=u.UserId) and (uir.RoleId=r.RoleId) 
+0

какая разница? tha't не вернет ничего, кроме – Dvirski

0

Вы можете попробовать это:

SELECT u.UserName, r.RoleName FROM dbo.aspnet_Users u 
INNER JOIN dbo.aspnet_UsersInRoles uir 
ON u.UserId=uir.UserId 
INNER JOIN aspnet_Roles r 
ON uir.RoleId=r.RoleId 
+0

, это нормально, но мне нужны поля из таблицы Membership ... – Dvirski

+0

@Dvirski: Тогда, пожалуйста, используйте LEFT JOIN соответственно. – Novice

Смежные вопросы