private static void BuildUserNode(TreeNode currentNode, dsUserSecurity.SPRoleRow sourceData)
            {
                dsUserSecurity.SPUserRoleRow[] newUsers = (dsUserSecurity.SPUserRoleRow[]) (sourceData.GetChildRows("SPRoleUserRole_Fk"));
                TreeNode newUserNode;

                foreach (dsUserSecurity.SPUserRoleRow drvRow in newUsers)
                {
                    try
                    {
                        TreeNode tempNode = currentNode.Nodes[drvRow.SPUserRow("UserName").ToString()];

                        if (tempNode == null)
                        {
                            newUserNode = currentNode.Nodes.Add(drvRow.SPUserRow("UserName").ToString());
                            newUserNode.Name = drvRow.SPUserRow("UserName").ToString();
                            newUserNode.ImageKey = "UserNode";
                            newUserNode.Tag = "U:" + drvRow.SPUserRow("UserID").ToString();
                        }
                    }
                    catch (Exception)
                    {

                    }
                }

                newUserNode = null;
            }
            private static void BuildRoleNode(TreeNode currentNode, dsUserSecurity.SPApplicationRow sourceData)
            {
                TreeNode newRoleNode;
                dsUserSecurity.SPUserRoleRow[] userRoleRows = (dsUserSecurity.SPUserRoleRow[]) (sourceData.GetChildRows("SPApplicationUserRole_FK"));

                currentNode.TreeView.BeginUpdate();

                foreach (dsUserSecurity.SPUserRoleRow drvRow in userRoleRows)
                {
                    try
                    {
                        TreeNode tempNode = currentNode.Nodes[drvRow.SPRoleRow.RoleName];

                        if (tempNode == null)
                        {
                            newRoleNode = currentNode.Nodes.Add(drvRow.SPRoleRow.RoleName);
                            newRoleNode.Name = drvRow.SPRoleRow.RoleName;
                            newRoleNode.ImageKey = "RoleNode";
                            newRoleNode.Tag = "R:" + drvRow.RoleID.ToString();

                            newRoleNode.NodeFont = new Font(currentNode.TreeView.Font, FontStyle.Bold);

                            BuildUserNode(newRoleNode, drvRow.SPRoleRow);
                        }
                    }
                    catch (Exception)
                    {
                    }
                }

                newRoleNode = null;
                currentNode.TreeView.EndUpdate();
            }
            public static void BuildSecurity(TreeView SourceTree, dsUserSecurity SourceData, bool ClearTree)
            {
                dsUserSecurity.SPApplicationDataTable dvTreeTable;
                TreeNode rootNode;
                TreeNode applicationNode;

                dvTreeTable = SourceData.SPApplication;

                if (ClearTree == false) //Might be a root node
                {
                    rootNode = SourceTree.Nodes[0];
                }
                else
                {
                    SourceTree.Nodes.Clear();
                    //rootNode = SourceTree.Nodes.Add(TextDictionary("FL_SECURITY"))
                    rootNode = SourceTree.Nodes.Add("Security Explorer");
                }

                SourceTree.BeginUpdate();
                foreach (dsUserSecurity.SPApplicationRow drvRow in dvTreeTable)
                {
                    try
                    {
                        applicationNode = rootNode.Nodes.Add(drvRow("Name").ToString());
                        BuildRoleNode(applicationNode, drvRow);
                        applicationNode.Expand();
                        applicationNode.ImageKey = "ApplicationNode";
                        applicationNode.Tag = "A:" + drvRow("ApplicationID").ToString();
                    }
                    catch (Exception)
                    {
                    }
                }

                rootNode.Expand();
                SourceTree.EndUpdate();
                Cursor.Current = Cursors.Default;
            }
						[global::System.Diagnostics.DebuggerNonUserCodeAttribute(), global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")]public virtual int Update(dsUserSecurity dataSet)
						{
							return this.Adapter.Update(dataSet, "SPUserRole");
						}
						[global::System.Diagnostics.DebuggerNonUserCodeAttribute(), global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter"), global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)]public virtual int Fill(dsUserSecurity.SPUserRoleDataTable dataTable)
						{
							this.Adapter.SelectCommand = this.CommandCollection(0);
							if (this.ClearBeforeFill == true)
							{
								dataTable.Clear();
							}
							int returnValue = this.Adapter.Fill(dataTable);
							return returnValue;
						}
			[global::System.Diagnostics.DebuggerNonUserCodeAttribute(), global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")]public virtual int Update(dsUserSecurity.SPApplicationDataTable dataTable)
			{
				return this.Adapter.Update(dataTable);
			}