文章目录
项目源文件(包括数据库,项目素材及项目需求文档等)
链接: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();
}
}
📢欢迎点赞👍 收藏🌟 留言💬
📢单纯分享日常中的小练习,技术有限,如果发现有错欢迎指导