2012-11-19 2 views
0

이 쿼리에서 특수 사용자 이름의 역할 이름을 변경하려면 어떻게해야합니까? 실행 후이 쿼리를 통해 모든 역할 이름이 업데이트되었습니다 !! 사용자 이름을 고려하지 않고 !! 나는 그게 나를 안내 해주고 싶지 않아. 감사합니다쿼리 수정 업데이트

UPDATE 
    aspnet_Roles 
SET 
    RoleName = @RoleName 
FROM 
    aspnet_Membership 
INNER JOIN 
    aspnet_Users ON aspnet_Membership.UserId = aspnet_Users.UserId 
INNER JOIN 
    aspnet_UsersInRoles ON aspnet_Users.UserId = aspnet_UsersInRoles.UserId 
INNER JOIN 
    aspnet_Roles ON aspnet_UsersInRoles.RoleId = aspnet_Roles.RoleId 
WHERE  
    (aspnet_Users.UserName = @UserName) 
+0

쿼리를 호출하는 코드를 표시 할 수 있습니까? – SchmitzIT

답변

0

그것은 회원 테이블이었고 해결책을 찾았습니다. 여기에 있습니다 :

sqlcmd = new SqlCommand("SELECT RoleId FROM aspnet_Roles where [email protected]", sqlconn); 
         sqlcmd.Parameters.AddWithValue("@RoleName", "Reviewer"); 

         sqlconn.Open(); 
         System.Guid RoleId = ((System.Guid)sqlcmd.ExecuteScalar()); 

         sqlcmd = new SqlCommand("SELECT UserId FROM aspnet_Users where [email protected]", sqlconn); 
         sqlcmd.Parameters.AddWithValue("@UserName", EditorUserName); 
         System.Guid UserId = ((System.Guid)sqlcmd.ExecuteScalar()); 

         sqlcmd = new SqlCommand("SELECT RoleId FROM aspnet_Roles where [email protected]", sqlconn); 
         sqlcmd.Parameters.AddWithValue("@RoleName", "ReviewerEditor"); 
         System.Guid ReviewerEditorRoleId = ((System.Guid)sqlcmd.ExecuteScalar()); 

         sqlconn.Close(); 

         /// /////////////////////////////////////////////////////////////////////////////////////////////////////////////// 

         sqlcmd = new SqlCommand("UPDATE aspnet_UsersInRoles SET RoleId = @RoleId WHERE (UserId= @UserId)", sqlconn); 
         sqlcmd.Parameters.AddWithValue("@RoleId", ReviewerEditorRoleId); 
         sqlcmd.Parameters.AddWithValue("@UserId", UserId); 
         sqlconn.Open(); 
         sqlcmd.ExecuteNonQuery(); 
         sqlconn.Close();