权限管理:
一、设置权限:
(一)设计界面:
(二)代码:
1.窗体加载时候:把人员加载上,把功能加载上。 **
2.根据人员查看它相应的功能。**
3.设置人员的功能。
二、根据权限加载界面:
namespace WindowsFormsApplication17 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Filluser() { List<UserPermisstionData> list = new UserPermisstionDA().Select(); cmb.DataSource = list; cmb.DisplayMember = "Name"; cmb.ValueMember = "UserName"; } private void Form1_Load(object sender, EventArgs e) { Filluser(); //加载权限 // FillModule(); } private void btn_Click(object sender, EventArgs e) { //把人员代号取出来 string username = (cmb.SelectedItem as UserPermisstionData).UserName; //把此人现有的功能全给删除 UPtoModuleDA.DeleteByUsname(username); //遍历功能看看是否被选中 foreach (Control item in flowPane.Controls) { if (item is CheckBox) { CheckBox cb = item as CheckBox; if (cb.Checked == true) { string ModuleCode = cb.Tag.ToString(); //把人员代号和功能代号插入数据库中 UPtoModuleData data = new UPtoModuleData(); data.Usname = username; data.ModuleCode = ModuleCode; new UPtoModuleDA().Insert(data); } } } MessageBox.Show("添加成功"); } //加载权限 private void FillModule() { //把人员代号取出来 string name = (cmb.SelectedItem as UserPermisstionData).UserName; //根据人员代号查功能 List<UPtoModuleData> list = new UPtoModuleDA().SelectByUsname(name); //把功能显示到界面上 flowPane.Controls.Clear(); List<ModuleData> listall = new ModuleDA().Select();//所有的功能 foreach (ModuleData data in listall)//遍历所有的功能 { CheckBox cb = new CheckBox(); cb.Text = data.Zhiwei; cb.Tag = data.Code; foreach (UPtoModuleData item in list)//这个人具有的功能 { if (data.Code == item.ModuleCode) { cb.Checked = true; break; } } flowPane.Controls.Add(cb); } } private void cmb_SelectedIndexChanged(object sender, EventArgs e) { //加载权限 FillModule(); } } }
用的另外的几个表,不赘述了,主代码如上
注意:将List<UPtoModuleData> list = null;
改为:List<UPtoModuleData> list = new List<UPtoModuleData>();
不然容易报 null的 错误。
时间: 2024-08-09 19:50:47