> 文章列表 > 【C#学习记录】用户设置模块设计与实现(winform)

【C#学习记录】用户设置模块设计与实现(winform)

【C#学习记录】用户设置模块设计与实现(winform)

大家好,我是雷工!
最近练习实现一个企业人事管理系统,涉及到用户设置模块,将该模块的实现过程记录如下。

一、系统运行环境

本系统的程序运行环境具体如下。
(1)、系统开发平台:Microsoft Visual Studio 2019。
(2)、系统开发语言:C#。
(3)、数据库管理软件:Microsoft SQL Server 2008。

二、数据库表结构设计

本模块使用的数据表为:tb_Login(用户表)、tb_UserPope(用户权限表)两张数据表。
1、tb_Login表结构:

字段名 数据类型 是否主键 描述说明
ID varchar(5) 用户编号
Name varchar(20) 用户名
Pass varchar(20) 密码

2、tb_UserPope表结构:

字段名 数据类型 是否主键 描述说明
AutoID int 自动编号
ID varchar(5) 用户编号
PopeName varchar(50) 权限名称
Pope int 权限标识

三、用户设置模块设计

用户设置模块主要对系统中的用户信息进行管理,包括对用户信息的添加、修改和删除等操作,而且还可以为指定的用户设置操作权限。另外,如果要对管理员信息进行修改、删除和设置操作权限等操作,系统会提示不能对管理员进行操作。

用户设置窗体运行结果如下图所示:
【C#学习记录】用户设置模块设计与实现(winform)
1、设计用户设置窗体
1>创建Windows窗体,命名为F_User.cs。
2>在窗体中添加控件,并布局。
2、实现添加\\修改功能
1>创建Windows窗体,命名为F_UserAdd。
2>添加用户信息窗口运行效果:
【C#学习记录】用户设置模块设计与实现(winform)

3>修改用户信息窗口运行效果:
【C#学习记录】用户设置模块设计与实现(winform)
3、点击“添加”按钮,当用户名和密码为空时,演示效果:
提示
4、当“添加”的用户名在tb_Login(用户表)里已经存在时,演示效果:

已经存在

5、当添加用户成功时,演示效果:
添加成功

6、当试图修改超级用户admin的信息时,演示效果:

修改超级用户
7、当修改非超级用户时,演示效果:
修改非超级用户时

8、当点击“删除”按钮时,演示效果:
删除按钮时
9、当修改非超级用户的权限时,演示效果:
权限操作

四、主要代码的实现与分析

1、“添加”/“修改”按钮功能

在F_User窗体中单击工具栏中的“添加”/“修改”按钮,实例化F_UserAdd窗体的一个对象,并分别为该对象的Tag属性赋值为1和2,以标识在F_UserAdd窗体中将执行哪种操作。
代码如下:

		//工具栏-添加按钮功能private void tool_UserAdd_Click(object sender, EventArgs e){//实例化F_UserAdd窗体类对象PerForm.F_UserAdd FrmUserAdd = new PerForm.F_UserAdd();//设置F_UserAdd窗体的Tag属性为1,以标识执行添加操作FrmUserAdd.Tag = 1;FrmUserAdd.Text = "【雷工笔记】"+tool_UserAdd.Text + "用户";//设置F_UserAdd窗体的标题FrmUserAdd.ShowDialog(this);//以对话框形式显示窗体}//工具栏-修改按钮功能private void tool_UserAmend_Click(object sender, EventArgs e){if(ModuleClass.MyModule.User_ID.Trim()=="0001")//判断选择的是不是超级用户{MessageBox.Show("不能修改超级用户。");return;}//实例化F_UserAdd窗体类对象PerForm.F_UserAdd FrmUserAdd = new PerForm.F_UserAdd();//设置F_UserAdd窗体的Tag属性为2,以标识执行修改操作FrmUserAdd.Tag = 2;FrmUserAdd.Text= "【雷工笔记】" + tool_UserAmend.Text + "用户";//设置F_UserAdd窗体的标题FrmUserAdd.ShowDialog(this);//以对话框形式显示窗体}

2、“保存”按钮功能

在F_UserAdd窗体中单击“保存”按钮,判断“用户名”文本框和“密码”文本框是否为空。如果为空,则弹出提示信息;否则,根据该窗体的Tag属性值判断是执行用户添加操作,还是执行用户修改操作。
代码如下:

//保存按钮的实现代码private void button1_Click(object sender, EventArgs e){if(text_Name.Text==""&&text_Pass.Text=="")//判断用户名和密码是否为空{MessageBox.Show("请将用户名和密码添加完整。");return;}DSet = MyDataClass.getDataSet("select Name from tb_Login where Name='" + text_Name.Text + "'", "tb_Login");//判断窗体的Tag属性是否为2,以执行修改操作if((int)this.Tag==2&&text_Name.Text==ModuleClass.MyModule.User_Name){MyDataClass.getsqlcom("update tb_Login set Name='" + text_Name.Text + "',Pass='" + text_Pass.Text + "'where ID='" + ModuleClass.MyModule.User_ID + "'");MessageBox.Show("修改成功。");return;}if(DSet.Tables[0].Rows.Count>0)//判断用户是否已经存在{MessageBox.Show("当前用户名已存在,请重新输入。");//弹出提示信息text_Name.Text = "";text_Pass.Text = "";return;}//判断窗体的Tag属性是否为1,以执行添加操作if((int)this.Tag==1){AutoID = MyMC.GetAutocoding("tb_Login", "ID");//自动生成编号//调用公共类中的方法添加用户信息MyDataClass.getsqlcom("insert into tb_Login (ID,Name,Pass) values('" + AutoID + "','" + text_Name.Text + "','" + text_Pass.Text + "')");MyMC.ADD_Pope(AutoID, 0);//为新添加的用户设置权限MessageBox.Show("添加成功。");}else{//调用公共类中的方法修改用户信息MyDataClass.getsqlcom("update tb_Login set Name='" + text_Name.Text + "',Pass ='" + text_Pass.Text + "'where ID='" + ModuleClass.MyModule.User_ID + "'");//判断新添加的用户编码号是否与登录用户的编号相同if (ModuleClass.MyModule.User_ID == DataClass.MyMeans.Login_ID)DataClass.MyMeans.Login_Name = text_Name.Text;//设置登录用户名为“用户名”文本框的值MessageBox.Show("修改成功。");}this.Close();//关闭当前窗体}

3、“删除”按钮功能

在F_User窗体中单击工具栏中的“删除”按钮,判断要删除的用户是不是管理员。如果是,则弹出提示信息,提示不能修改管理员信息;否则,删除选中的用户信息,同时删除其权限信息。
代码如下:

//工具栏中“删除”按钮的实现代码private void tool_UserDelete_Click(object sender, EventArgs e){if (ModuleClass.MyModule.User_ID != ""){if (ModuleClass.MyModule.User_ID.Trim() == "0001")//判断要删除的用户是不是超级用户{MessageBox.Show("不能删除超级用户。");return;}//删除用户信息MyDataClass.getsqlcom("Delete tb_Login where ID='" + ModuleClass.MyModule.User_ID.Trim() + "'");//删除用户权限信息MyDataClass.getsqlcom("Delete tb_UserPope where ID='" + ModuleClass.MyModule.User_ID.Trim() + "'");//在数据库中查找所有用户信息,并将结果存储在DataSet数据集中MyDS_Grid = MyDataClass.getDataSet("select ID as编号,Name as 用户名 from tb_Login", "tb_Login");dataGridView1.DataSource = MyDS_Grid.Tables[0];//为DataGridView控件设置数据源}elseMessageBox.Show("无法删除空数据表。");}

3、“权限”按钮功能

在F_User窗体中单击工具栏的“权限”按钮,弹出F_UserPope窗体(用户权限设置窗体)。
代码如下:

//权限按钮功能private void tool_UserPopedom_Click(object sender, EventArgs e){if (ModuleClass.MyModule.User_ID.Trim() == "0001"){MessageBox.Show("不能修改超级用户权限。");return;}F_UserPope FrmUserPope = new F_UserPope();FrmUserPope.Text = "用户权限设置";FrmUserPope.ShowDialog(this);}

用户权限设置窗体中可以设置用户的权限,在该窗体中选中要拥有权限的复选框,单击“保存”按钮,调用MyModule公共类中的Amend_Pope方法为用户设置权限,同时将MyMeans公共类中的静态变量Login_n设置为2,以便在调用“重新登录”窗体时,使用新设置的权限对其进行初始化。
代码如下:

private void User_Save_Click(object sender, EventArgs e){//调用公共类的Amend_Pope方法为指定的用户设置权限MyMC.Amend_Pope(groupBox2.Controls, ModuleClass.MyModule.User_ID);//判断登录用户的编号是否与修改的用户编号相同if (DataClass.MyMeans.Login_ID == ModuleClass.MyModule.User_ID)//将静态变量Login_n设置为2,以便在调用“重新登录”窗体时,使用新设置的权限对其进行初始化DataClass.MyMeans.Login_n = 2;}

五、总结

本篇主要介绍了练习项目企业人事管理系统中的用户设置模块,通过该模块的开发练习,对用户设置模块有了初步的认识,如有更好的实现方式或问题欢迎留言讨论。

台湾旅游攻略