protected void gvwUsers_SelectedIndexChanged(object sender, EventArgs e)
    {
        gvwEditStocks.Visible = false;
        rBtnAdmin.Visible     = true;
        rBtnUser.Visible      = true;
        fvwUser.Visible       = true;
        chkApproval.Visible   = true;
        List <Role> listRole = new List <Role>();

        listRole   = RoleDB.GetUserRoles((Guid)gvwUsers.SelectedDataKey.Value);
        isApproved = MembershipDB.GetRoleId((Guid)gvwUsers.SelectedDataKey.Value);

        chkApproval.Checked = isApproved;

        foreach (Role role in listRole)
        {
            if (role.id == adminRoleId)
            {
                rBtnAdmin.Checked = true;
                rBtnUser.Checked  = false;
                isAdmin           = true;
                break;
            }
            if (role.id == userRoleId)
            {
                rBtnUser.Checked  = true;
                rBtnAdmin.Checked = false;
                isAdmin           = false;
            }
        }

        rBtnAdmin.Enabled   = false;
        rBtnUser.Enabled    = false;
        chkApproval.Enabled = false;
    }
    protected void dsUser_Updated(object sender, ObjectDataSourceStatusEventArgs e)
    {
        Guid  userId = (Guid)gvwUsers.SelectedDataKey.Value;
        Label lblUserErrorMessage = (Label)fvwUser.FindControl("lblUserErrorMessage");

        if (e.Exception != null)
        {
            lblUserErrorMessage.Text = "A database error has occurred.<br /><br />" +
                                       e.Exception.Message;
            if (e.Exception.InnerException != null)
            {
                lblUserErrorMessage.Text += "<br />Message: "
                                            + e.Exception.InnerException.Message;
            }
            e.ExceptionHandled = true;
            return;
        }
        else if (e.AffectedRows == 0)
        {
            lblUserErrorMessage.Text = "Another user may have edited this user"
                                       + "<br />Please try again.";
            return;
        }

        //makes sure the user isn't given a role he allready has
        if (rBtnAdmin.Checked != isAdmin)
        {
            try
            {
                RoleDB.DeleteUserRole(userId, adminRoleId);
                RoleDB.DeleteUserRole(userId, userRoleId);
            }
            catch (SqlException sqlEx)
            {
                lblRoleErrorMessage.Text += "A database error has occurred.<br /><br />" +
                                            sqlEx.Message;
            }

            try
            {
                if (rBtnAdmin.Checked)
                {
                    RoleDB.InsertUserRole(userId, adminRoleId);
                }
                else
                {
                    RoleDB.InsertUserRole(userId, userRoleId);
                }
            }
            catch (SqlException sqlEx)
            {
                lblRoleErrorMessage.Text += "A database error has occurred.<br /><br />" +
                                            sqlEx.Message;
            }
        }

        if (chkApproval.Checked != isApproved)
        {
            try
            {
                MembershipDB.updateUserApproval(userId, chkApproval.Checked);
            }
            catch (SqlException sqlEx)
            {
                lblRoleErrorMessage.Text += "A database error has occurred.<br /><br />" +
                                            sqlEx.Message;
            }
        }
    }