C#winform 蓝山人力资源管理

项目源文件(包括数据库,项目素材及项目需求文档等)
链接:https://pan.baidu.com/s/1T_JIPWKCsZ28R_3O9398PQ?pwd=LSRL
提取码:LSRL

一、项目设计

1.项目设计背景及功能设计

蓝山人力资源管理的目的就是运用现代化的科学方法,对一定物力相结合的人力进行合理有效的管理、组织和调配,使其方法更简单方便。用 “数字化办公”的整体概念来统一规划公司的办公自动化系统。本项目主要划分为人事管理、部门管理、用户管理、帮助、设置、信息的增删改查这几个模块。各个模块中包含不同的系统功能,其关系如图所示:
在这里插入图片描述

2.项目功能分解
模块子模块
数据库设计员工信息表、培训人员信息表、人员奖罚表、人员调动表、劳保福利表、人员考评表、部门信息表、职务信息表、用户信息表
静态窗体人事管理、用户管理、部门管理、帮助以及它们的子窗体
登录(角色管理)管理员登录、员工登录
人事管理窗体人员考评管理、员工培训管理、福利发放管理、人员调动管理、人员奖惩管理、人员信息统计、员工档案管理窗体
部门管理窗体部门信息、添加部门窗体
用户管理窗体修改用户、添加用户、用户信息窗体
设置窗体修改窗体的皮肤样式
帮助窗体各项功能的操作说明
3.数据库设计
表名功能说明
Employee员工信息表
Training培训人员信息表
RaPInfo人员奖罚表
Transfer人员调动表
Welfare劳保福利表
Evaluate人员考评表
Department部门信息表
Evaluate员工信息表

数据库设计目录:
在这里插入图片描述

4.项目文件目录

在这里插入图片描述

二、项目界面

1.登录界面

程序运行以后进入登录界面,用户输入用户名和密码,输入的密码错误或输入的用户名不存在时会给出提示,当输入的用户名和密码都正确时进入主界面。当输入的用户名级别为2时表示管理员登录;当输入的用户名级别为1时表示为普通员工。
在这里插入图片描述

2.主界面

用户要进行任何操作都是从主界面进入,通过不同图标进入二级菜单,然后实现其他一系列操作,当管理员登录时,可以对其他员工信息进行增删改查等管理操作;当员工登录时,只能对用户信息进行查看,不能进行其他操作。

管理员登录主界面

在这里插入图片描述

员工登录主界面

在这里插入图片描述

3.皮肤设计

用户可以通过设置里面的皮肤设置来选择自己喜欢的整体界面风格,包括Vista风格,OneOrange风格,MP10风格,Wave风格。
在这里插入图片描述

4.帮助界面

帮助界面主要对每个模块的功能及设计进行说明,方便用户进行操作。
在这里插入图片描述

5.其他部分功能展示
员工档案管理(管理员登录)

进入该界面可以添加,修改,删除,查找(按编号,按姓名,按部门等)用户,界面左下角会显示该用户的照片
在这里插入图片描述

添加员工

依次按照要求填写要添加的员工信息,文本框后有‘ * ’号表示该信息为必填项,如果没有填写会有相应提示,还有某些信息会在填写之前就会给出一个默认值,如果与事实情况不符也可以进行修改。
在这里插入图片描述

部门信息管理

在部门管理中,可以进入部门信息的二级菜单,然后可以进行添加部门,删除部门,查找部门等操作。添加部门时,父部门是根据数据库中已存在的部门进行选择,不可以随意添加。
在这里插入图片描述

三、部分代码展示

1.Program.cs:应用程序主入口
static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Login());
       
2.DBhelper.cs:连接数据库的DBHelper.cs类
class DBhelper
    {
        public static string ConnStr = "server=.;database=Management;uid=sa;pwd=123456";
        //数据库连接对象

        public static SqlConnection Conn = null;

        //初始化数据库连接
        private static void InitConnection()
        {
            if (Conn == null)
            {
                Conn = new SqlConnection(ConnStr);
            }
            if (Conn.State == ConnectionState.Closed)
            {
                Conn.Open();
            }
            if (Conn.State == ConnectionState.Broken)
            {
                Conn.Close();
                Conn.Open();
            }
        }
        //查询获取DataTable
        public static DataTable GetDataTable(string sqlStr)
        {
            InitConnection();

            SqlDataAdapter dap = new SqlDataAdapter(sqlStr, Conn);
            DataTable table = new DataTable();
            dap.Fill(table);
            Conn.Close();
            return table;
        }
        //查询,获取DataReader
        public static SqlDataReader GetDataReader(string sqlStr)
        {
            InitConnection();
            SqlCommand Comm = new SqlCommand(sqlStr, Conn);
            //CommandBehavior.CloseConnection 命令行为:当DataReader对象被关闭时,自动关闭占用的连接对象
            SqlDataReader Reader = Comm.ExecuteReader(CommandBehavior.CloseConnection);
            return Reader;
        }
        //增加,删除,更新
        public static bool ExecuteNonQuery(string sqlStr)
        {
            InitConnection();
            SqlCommand Comm = new SqlCommand(sqlStr, Conn);
            int Num = Comm.ExecuteNonQuery();
            Conn.Close();
            return Num > 0;
        }

        public static string ExecuteScalar1(string sqlStr)
        {
            InitConnection();
            SqlCommand Comm = new SqlCommand(sqlStr, Conn);
            string Num = Comm.ExecuteScalar().ToString();
            Conn.Close();
            return Num;
        }

    }
3.Login.cs:登录界面代码展示
 public partial class Login : Form
    {
        public Login()
        {
            InitializeComponent();
        }
        //确认按钮
        private void button1_Click(object sender, EventArgs e)
        {
            this.Hide();//登陆成功后关闭登录窗体
            string name = this.txt_name.Text;
            string pwd = this.txt_pwd.Text;
            if (name == "" || pwd == "")
            {
                MessageBox.Show("请输入账号和密码!", "系统提示!");
            }
            else
            {
                SqlConnection conn = new SqlConnection("server=.;database=Management;uid=sa;pwd=123456");
                conn.Open();
                StringBuilder sb = new StringBuilder();
                sb.AppendLine("select EmpName,EmpPwd from Employee");
                sb.AppendFormat("where EmpName='{0}'and EmpPwd='{1}'", name, pwd);
                string selStr = "select * from Employee where EmpName='" + name + "'";
                SqlDataAdapter da = new SqlDataAdapter(selStr, conn);
                DataSet ds = new DataSet();
                da.Fill(ds);
                if (ds.Tables[0].Rows.Count != 0)
                {
                    string sel = "select * from Employee where EmpPwd='" + pwd + "'";
                    SqlDataAdapter a = new SqlDataAdapter(sel, conn);
                    DataSet b = new DataSet();
                    a.Fill(b);
                    if (b.Tables[0].Rows.Count != 0)
                    {
                        if (name == "张三" )
                        {
                            MainFrom f2 = new MainFrom();
                            f2.Show();
                        }
                        else
                        {
                            Main.StaffMain staffmain = new Main.StaffMain();
                            staffmain.Show();
                        }
                    }
                    else
                    {
                        MessageBox.Show("密码错误,请重试!", "系统提示!");
                    }

                }
                else
                {
                    MessageBox.Show("账号不存在!", "系统提示!");
                }
            }
        }

    //取消按钮
    private void button2_Click(object sender, EventArgs e)
    {
        System.Environment.Exit(0);//当点击取消就关闭整个应用程序
    }
}
4.AmendUser:修改用户信息
 public partial class AmendUser : Form
    {
        public AmendUser()
        {
            InitializeComponent();
        }
        //取消按钮
        private void button3_Click(object sender, EventArgs e)
        {
            this.Close();//关闭当前窗体
        }
        //清空按钮
        private void button2_Click(object sender, EventArgs e)
        {
            this.textBox3.Text = null;
        }
        //确定按钮
        private void button1_Click(object sender, EventArgs e)
        {
            string name = this.cbx_name.Text;
            string pwd = this.textBox2.Text;
            string qrpwd = this.textBox3.Text;
            if (name == "" || pwd == "" || qrpwd == "")
            {
                MessageBox.Show("请输入完整的信息!", "系统提示!");
            }
            else
            {
                SqlConnection conn = new SqlConnection("server=.;database=Management;uid=sa;pwd=123456");
                conn.Open();
                string selStr = "select * from Employee where EmpName='" + this.cbx_name.Text + "'";
                SqlDataAdapter da = new SqlDataAdapter(selStr, conn);
                DataSet ds = new DataSet();
                da.Fill(ds);
                if (ds.Tables[0].Rows.Count != 0)
                {
                    StringBuilder sb = new StringBuilder();
                    sb.AppendLine("update Employee");
                    sb.AppendFormat("Set EmpPwd={0}", pwd);
                    sb.AppendFormat("where EmpName='{0}'", name);
                    if (this.textBox2.Text == this.textBox3.Text)
                    {
                        SqlCommand comm = new SqlCommand(sb.ToString(), conn);
                        int num = comm.ExecuteNonQuery();
                        if (num > 0)
                        {
                            MessageBox.Show("修改成功!");
                            this.Close();
                        }
                        else
                        {
                            MessageBox.Show("修改失败!");

                        }
                    }
                    else
                    {
                        MessageBox.Show("两次密码输入不同!", "系统提示!", MessageBoxButtons.RetryCancel);
                        this.textBox3.Text = null;
                    }
                }
            }
        }
        //获取主窗体的ID信息
        int Empid = User.Userinfo.Id;
        //主界面
        private void AmendUser_Load(object sender, EventArgs e)
        {
            try
            {
                //声明一个SQLconnection对象
                SqlConnection sql = new SqlConnection("server=.;database=Management;uid=sa;pwd=123456");
                //声明一个SQLcommand对象
                SqlCommand sqlcmd = new SqlCommand("select EmpName from Employee", sql);
                //用DataAdapter声明一个对象
                SqlDataAdapter sda = new SqlDataAdapter();
                //执行查询语句
                sda.SelectCommand = sqlcmd;
                //创建一个数据集对象
                DataSet da = new DataSet();
                //调用DataAdapter对象的Fill()方法来填充数据集
                sda.Fill(da, "EmpName");
                //绑定combobox的数据集
                cbx_name.DataSource = da.Tables["EmpName"];
                //选定combobox显示的成员及将Name这一列显示在combobox中
                cbx_name.DisplayMember = "EmpName";
            }
            catch (Exception ex)//当try中出现代码异常时,会触发catch
            {
                MessageBox.Show(ex.Message);
            }
            string sqlStr = string.Format("Select EmpID,EmpName,EmpPwd from Employee where EmpID={0}", Empid );
            //接受数据库的数据,以SqlDataReader的方式存储
            SqlDataReader reader = DBhelper.GetDataReader(sqlStr);
            while (reader.Read())//逐行读取
            {
                //读取的数据是一个“源”类型数据,需要强制转换

                this.cbx_name.Text = reader["EmpName"].ToString();
                this.textBox2.Text = reader["EmpPwd"].ToString();
            }
            //关闭连接
            reader.Close();
        }

    }

📢欢迎点赞👍 收藏🌟 留言💬
📢单纯分享日常中的小练习,技术有限,如果发现有错欢迎指导

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值