Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1207
  • Last Modified:

Can't Update Members database Membership.UpdateUser

Hi

I have been having a problem updating the ASPNETDB.MDF Created by Visual Studio when creating Membership forms like login new user etc

I Have created a GridView to edit existing user in this database updating Roles works but when i try to Update fields like Email or ISApproved it is not save the changes to the database

    protected void gdvEdit_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
        int intIndex = Convert.ToInt32(e.RowIndex);
     

        TextBox txtUserName = (TextBox)gdvEdit.Rows[intIndex].FindControl("txtUserName");
        TextBox txtEmail = (TextBox)gdvEdit.Rows[intIndex].FindControl("txtEmail");
        CheckBox chkEditIsLockedOut = (CheckBox)gdvEdit.Rows[intIndex].FindControl("chkEditIsLockedOut");
        ListBox lsbRoles = (ListBox)gdvEdit.Rows[intIndex].FindControl("lsbRoles");

        //Remove all Roles From User
        string[] userRoles = Roles.GetRolesForUser(gdvEdit.DataKeys[intIndex][0].ToString());
        foreach (string strRole in userRoles)
        {
            Roles.RemoveUserFromRole(gdvEdit.DataKeys[intIndex][0].ToString(), strRole);
        }

        //Replace with new selection of roles
        for (int i = 0; i < lsbRoles.Items.Count; i++)
        {
            if (lsbRoles.Items[i].Selected == true)

                Roles.AddUserToRole(gdvEdit.DataKeys[intIndex][0].ToString(), lsbRoles.Items[i].Value);
        }

        string UserName = gdvEdit.DataKeys[intIndex][0].ToString();
        MembershipUser UserDetails = Membership.GetUser(UserName);

        //Update User Details
        UserDetails.IsApproved = true;
        UserDetails.Email = txtEmail.Text.Trim();

        if (chkEditIsLockedOut.Checked == false) { UserDetails.UnlockUser(); }
        Membership.UpdateUser(UserDetails);

        //Rebind GridView
        gdvEdit.EditIndex = -1;
        Bind_gdvEdit();
    }

Any Ideas on why this maybe happing would be appreciated

Thanks
John
0
Filtered
Asked:
Filtered
  • 2
1 Solution
 
FilteredAuthor Commented:
Hi

If anyone would like me to send them the project (it is quite small only has few pages and the database) so that they could step through the code and detect something that i'm unaware of i will gladly send it to them by email as I can not  upload the project to this site even as a zip file.

Thanks
John
0
 
joechinaCommented:
Have you tried to move

 if (chkEditIsLockedOut.Checked == false) { UserDetails.UnlockUser(); }

down after the update?

UnlockUser might update the database first(You can do a quick check), so when you update the user, the record status is different from when you get the user.
0
 
FilteredAuthor Commented:
Thank you very much joechina that has done the trick :)
0

Featured Post

Veeam Task Manager for Hyper-V

Task Manager for Hyper-V provides critical information that allows you to monitor Hyper-V performance by displaying real-time views of CPU and memory at the individual VM-level, so you can quickly identify which VMs are using host resources.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now