百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

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

liuian 2024-12-10 18:06 46 浏览

大家好,我是雷工!

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

一、系统运行环境

本系统的程序运行环境具体如下。

(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

权限标识

三、用户设置界面设计及演示效果

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

用户设置窗体运行效果如下图所示:


1、设计用户设置窗体

1>创建Windows窗体,命名为F_User.cs。

2>在窗体中添加控件,并布局。

2、实现添加\修改功能

1>创建Windows窗体,命名为F_UserAdd。

2>添加用户信息窗口运行效果:


3>修改用户信息窗口运行效果:


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控件设置数据源
            }
            else
                MessageBox.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;
        }

五、总结

本篇主要介绍了练习项目企业人事管理系统中的用户设置模块,通过该模块的开发练习,对用户设置模块有了初步的认识,如果觉得有用欢迎点赞收藏,如果觉得有不对之处,欢迎评论区留言。

相关推荐

nod32(NOD32手机版)

nod32是斯洛伐克共和国,简称斯洛伐克,是中欧的一个内陆国家。打开nod32,在主窗口右上角有一个设置按钮,单击它就会出现一个下拉菜单,再点击用户名和密码设置即可出现你第一次申请时的用户名和密码1...

分盘c盘分多大合适(分区c盘一般多大)

如果硬盘大,有一千个G,可以把硬盘分成4个盘,c盘,D盘,E盘,F盘,C盘大点,分300个G,D盘,E盘,F盘各分230个G,因为很多操作系统都在c盘,c盘有足够的空间,电脑反应才快。100G。按照安...

绘图显卡天梯图(绘图显卡性能排行)

NVIDIA是Quadro系列和ATI是FireGL系列都属于专业绘图显卡。这里分别介绍下其中一款产品的参数:NvidiaQuadro4000参数:显存类型:GDDR5;显存容量:2048M...

哪个网站的win7系统好用(哪个网站的win7系统好用一点)

靠谱,系统之家的系统装好后不需要激活,也不要钱。只是系统之家的所有东西,系统也好,软件也好。都有强有力的写在系统底层的顽固病毒,只要碰过系统之家就永远杀不干净。当然了,永远关不掉的广告弹窗也是基本操作...

升级win10的最低配置(电脑升级win10的最低配置)

1最低配置是1GHz的处理器、1GB的内存和16GB的硬盘空间2因为升级操作需要一定的计算机资源,若电脑配置过低,升级可能会出现卡顿、崩溃等问题。因此微软推荐至少1GHz的处理器、1GB的内存和1...

qq人工客服入口(qq人工客服详细联系方法)
  • qq人工客服入口(qq人工客服详细联系方法)
  • qq人工客服入口(qq人工客服详细联系方法)
  • qq人工客服入口(qq人工客服详细联系方法)
  • qq人工客服入口(qq人工客服详细联系方法)
手机上怎样鉴定u盘容量(手机上怎样鉴定u盘容量呢)

手机想要检测u盘的真实内存,可以首先在手机上下载一个u盘管理软件。下载完毕之后,就利用转换器连接u盘在手机的充电口。手机读取之后就可以出现现有的内存,将它导入u盘管理软件。就可以读取深层次的真实内存。...

电脑桌面图标隐藏了怎么恢复

首先长按手机应用界面空白处,在弹出的菜单中点击隐藏图标按钮,接着输入密码,可以看到被隐藏的应用,长按要恢复的应用,将它拖动到桌面即可。1、双击打开此电脑;2、点击【查看】,勾选【隐藏的项目】;3、右键...

手机如何还原到原来的系统(手机怎样恢复到原系统)
手机如何还原到原来的系统(手机怎样恢复到原系统)

可通过恢复出厂设置恢复旧版本。以oppo手机为例,具体如下:1、首先,打开手机桌面上的“设置”图标。2、点击进入之后,在跳转出来的页面中,选择“常规”页面下的“更多”选项。3、进入“更多”之后,点击选项最上面的“恢复出厂设置”选项。4、在恢...

2025-11-09 20:55 liuian

psd格式怎么编辑(psd格式怎么修改图片)

  PSD格式的图像,可以使用Photoshop来打开。  PSD--PhotoshopDocument(PSD),是著名的Adobe公司的图像处理软件Photoshop的专用格式。这种格式可以存储P...

xp系统恢复出厂设置步骤图解

电脑xp系统一键还原具体操作方法如下:1.在电脑里打开一键GHOST程序2.会看到有以前备份过的系统文件信息,默认选项是(一键恢复系统)项,点击(恢复)。3.点击(恢复)后弹出对话框,提示恢复系统必须...

联想哪款笔记本电脑最好(联想笔记本那个款好)

联想笔记本电脑有4个系列,分别是:1、昭阳笔记本电脑针对行业客户设计的高品质笔记本电脑。高端、高性能的同时具备多重可信赖的安全保护方案。昭阳系列针对行业客户提供按需定制服务。2、旭日笔记本电脑联想旭日...

测速网速在线测试(在线测速网络速度)

是指通过特定的软件或网站,对用户的网络连接速度进行测试和评估。这种测试通常包括上传速度、下载速度、延迟时间等指标,帮助用户了解自己网络连接的性能和稳定性。常见的网速在线测试网站或软件有Speedtes...

win7旗舰精简版(win7精简版系统怎么样)

Windows7SP1旗舰版64位超级极度精简封装版,属于深度精简(1G ESD版),基于Windows7SP1旗舰版进行精简优化封装,集成最新安全补丁,特别适合高主频单核、低主频...

笔记本电脑分辨率怎么调(笔记本电脑分辨率怎么调最佳win10)

调整方法如下第1步:使用快捷键【win+i】打开系统设置,也可以点击左下角的开始菜单栏,点击【设置】进入。进入系统设置后,点击【系统】,进入详细设置界面。第2步:点击左侧选项栏中的【屏幕】,在右侧找到...