C# 用户权限管理

来源:互联网 发布:java怎么写入csv文件 编辑:程序博客网 时间:2024/05/18 11:49
int YongHuID = 0;        int myop = 0;        int KaiGuan = 0;        DataTable dtPiPeiMoKuai = new DataTable();        BLL系统维护.frm_QuanXianSheZhi.frm_QuanXianSheZhiClient myfrm_QuanXianSheZhiClient = new BLL系统维护.frm_QuanXianSheZhi.frm_QuanXianSheZhiClient();private void trv_YuanGong_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)        {            KaiGuan = 0;            YongHuID = Convert.ToInt32(e.Node.Name);            try            {                dtPiPeiMoKuai = myfrm_QuanXianSheZhiClient.trv_YuanGong_NodeMouseClick_SelectQuanXian(YongHuID).Tables[0];            }            catch { }            trv_MoKuai.Nodes.Clear();            AddTree2(7, (TreeNode)null);            //trv_MoKuai.ExpandAll();        }        #region 循环递归提取数据(全部模块)        public void AddTree2(int ParentID, TreeNode pNode) // 递归,自己调用自己        {            DataTable dtTree = myfrm_QuanXianSheZhiClient.trv_YuanGong_NodeMouseClick_SelectMoKuai().Tables[0];            DataView dvTree = new DataView(dtTree); //就是dtTree = dsFrame.Tables[0];            string Fstr = "模块Far_ID =" + ParentID;            dvTree.RowFilter = Fstr;            foreach (DataRowView Row in dvTree)            {                TreeNode Node = new TreeNode();                if (pNode == null)                  //处理主节点                {                    Node.Name = Row["模块ID"].ToString().Trim(); //这里+了2个值分别到Name和Text,可随便                    Node.Text = Row["模块名称"].ToString().Trim();                    trv_MoKuai.Nodes.Add(Node);                    for (int i = 0; i < dtPiPeiMoKuai.Rows.Count; i++)                    {                        if (Node.Name == dtPiPeiMoKuai.Rows[i][2].ToString().Trim())//判断用户是否拥有该权限                        {                            Node.Checked = true;//拥有则打 √                        }                    }                    AddTree2(Int32.Parse(Row["模块ID"].ToString()), Node); //递归                }                else //处理子节点                {                    Node.Name = Row["模块ID"].ToString();                    Node.Text = Row["模块名称"].ToString();                    pNode.Nodes.Add(Node);                    for (int i = 0; i < dtPiPeiMoKuai.Rows.Count; i++)                    {                        if (Node.Name == dtPiPeiMoKuai.Rows[i][2].ToString().Trim())                        {                            Node.Checked = true;                        }                    }                    AddTree2(Int32.Parse(Row["模块ID"].ToString()), Node);                }                Node.Tag = Row["模块ID"];  //获取当前节点数据(ID)            }        }        #endregion        private void btn_BaoCun_Click(object sender, EventArgs e)        {            myop = 0;            for (int i = 0; i < trv_MoKuai.Nodes.Count; i++)            {                Recursion(trv_MoKuai.Nodes[i]);            }            if (myop > 0)            {                MessageBox.Show("操作成功!","提示:");            }        }        void Recursion(TreeNode TN)//递归        {            foreach (TreeNode tn in TN.Nodes )            {                int MoKuaiID = 0;//模块ID                int QuanXianID = 0;//权限ID                bool bolYouXiaoFou = false;//权限有效否                //操作判断                MoKuaiID = Convert.ToInt32(tn.Name);//获取模块ID                try                {   //检测是否存在权限ID                    QuanXianID = Convert.ToInt32(myfrm_QuanXianSheZhiClient.btn_BaoCun_Click_SelectQuanXian(YongHuID, MoKuaiID).Tables[0].Rows[0][0].ToString().Trim());                }                catch { }                if (QuanXianID != 0)//若存在权限ID                {                    if (tn.Checked)//若该节点被选中                    {                        bolYouXiaoFou = true;//则将权限修改为"有效"                        myop = myfrm_QuanXianSheZhiClient.btn_BaoCun_Click_UpdateQuanXian(QuanXianID, bolYouXiaoFou);                    }                    else                    {                        bolYouXiaoFou = false;//否则则将权限修改为"无效"                        myop = myfrm_QuanXianSheZhiClient.btn_BaoCun_Click_UpdateQuanXian(QuanXianID, bolYouXiaoFou);                    }                }                else//若不存在权限ID                {                    if (tn.Checked)//若该节点被选中                    {   //则新增权限                        myop = myfrm_QuanXianSheZhiClient.btn_BaoCun_Click_InsertQuanXian(YongHuID, MoKuaiID);                    }                    else                    {                        //神马都不做                    }                }                Recursion(tn);            }                    }


原创粉丝点击