C人事工资标准管理系统实验报告
时间:2020-10-26 09:16:56 来源:工作范文网 本文已影响 人
武汉工业学院
数据库应用系统设计
试验汇报
学号:
姓名: 毕 波
班级: 计算机091
指导老师:
人事工资管理系统
设计总说明:在当今社会,工资管理是一项必需而且很关键工作。现在伴随企业数量急剧增加,处理大家工资数据变越来越烦琐艰巨。现在,计算机已经普及到了几乎每个学校、家庭,我们学习和生活已经四处离不开计算机存在。
本系统依据开发要求关键应用于企业人事系统,完成对日常工资增删查改数字化管理。比较系统地对职员信息和工资进行管理,查询、增添、修改、删除全部变很简便,节省了大量工作量。
本课程设计是在学习了《数据库应用系统》和相关开发软件课程以后,让学生经过实际项目标设计、开发,培养学生独立进行数据库软件建模、在计算机中进行数据库设计、并经过相关软件开发系统能力。
本系统基础功效包含:部门信息管理(查询、添加、修改、删除学生部门等)、职员信息管理(录入、查询、修改、删除职员信息等)、工资信息管理(录入、查询、修改职员工资等)。
本系统关键用于对职员工资进行管理,能够进行插入、删除、修改、查询和显示职员信息。登录该系统时,用户需要输入口令和密码,以确保数据安全性,成功登录用户,能够插入职员信息和工资,并对职员信息和工资进行增、删、改操作。
基于上述想法,我们将职员数据保留到数据库中。我们要求系统能够高效快速处理数据,而且要确保数据正确性、相容性和安全性。所以在数据库中需要定义很多触发器,比如删除了某个职员信息则删除对应全部工资信息、活着删除了某部门则删除该部门全部信息等。
所以我们要从数据库中读取数据,而且和界面联络起来,同时也能将用户界面上数据存放到数据库中。以上是设计此系统应该注意地方和设计标准,以下就是遵照这些标准和标准设计出一套完整管理系统。
一 系统需求:
依据题目需求,能够把系统分为三个部分:部门信息管理部分、职员信息管理部分和工资信息管理部分。此次试验中,我关键负责部门信息管理模块,题中需要对部门信息进行查询、添加、修改、删除操作,这些操作按是否改变数据库数据可分为两类:查询操作,只读取数据库信息,不对信息做修改;删除、更新和添加操作,需要对数据库中数据进行读写操作。所以只要写两部分代码,查询部分:deptinfo_Query进行部门信息查询,查询数据库信息;信息管理部分:deptinfo_Manage,对信息进行更新、增加和删除。
二 数据库设计
1.数据需求
人事工资管理系统需要完成关键功效有:
1职员基础信息录入
2.工资信息表录入。
3.部门信息表查询、插入、修改、删除等操作。
2.相关表
表1 职员表:Employee_Info
表2 工资表:Salary
表3 部门表:Dept_Info
表4 系统用户表:User_Info
3.数据步骤图
人事工资管理系统
人事工资管理系统
登录
登录
系统管理员
系统管理员
职员表
职员表
部门表工资表
部门表
工资表
图 数据步骤图
三 职员工资相关操作
1.查询部分
相关代码:
dateGrid1数据绑定
private void BindData(String sql)
{
SqlConnection connection = new SqlConnection(connString);
SqlDataAdapter dataAdapter = new SqlDataAdapter(sql, connection);
DataSet dataSet = new DataSet();
dataAdapter.Fill(dataSet);
dataGridView1.DataSource = dataSet.Tables[0];
dataGridView1.Columns[0].DataPropertyName = "职工?è号?";
dataGridView1.Columns[1].DataPropertyName = "年份";
dataGridView1.Columns[2].DataPropertyName = "月份";
dataGridView1.Columns[3].DataPropertyName = "工资o";
}
部门组合框数据绑定
private void BindDeptComBox()
{
string sql = "SELECT * FROM [Dept_Info]";
SqlConnection connection = new SqlConnection(connString);
SqlDataAdapter dataAdapter = new SqlDataAdapter(sql, connection);
DataSet dataSet = new DataSet();
dataAdapter.Fill(dataSet);
DeptcomBox.DataSource = dataSet.Tables[0];
DeptcomBox.DisplayMember = "DeptName";
DeptcomBox.ValueMember = "DeptID";
DeptcomBox.SelectedIndex = 0;
}
按部门查询
private void check1_CheckedChanged(object sender, EventArgs e)
{
if (check1.Checked)
{
btnYes.Enabled = true;
DeptcomBox.Enabled = true;
check4.Checked = false;
check4.Enabled = false;
}
else
{
DeptcomBox.Enabled = false;
check4.Enabled = true;
}
}
按年份查询
private void check2_CheckedChanged(object sender, EventArgs e)
{
btnYes.Enabled = true;
if (check2.Checked)
{
YearComBox.Enabled = true;
}
else
{
YearComBox.Enabled = false;
}
YearComBox.SelectedIndex = 0;
}
按月份Y查询
private void check3_CheckedChanged(object sender, EventArgs e)
{
if (check3.Checked)
{
btnYes.Enabled = true;
MonthComBox.Enabled = true;
}
else
{
MonthComBox.Enabled = false;
}
}
仅查询自己工资
private void check4_CheckedChanged(object sender, EventArgs e)
{
if (check4.Checked)
{
btnYes.Enabled = true;
check1.Enabled = false;
DeptcomBox.Enabled = false;
}
else
{
check1.Enabled = true;
check1.Checked = false;
}
}
private void btnYes_Click(object sender, EventArgs e)
{
count = 0;
String YearStr;
int MonthStr;
String DeptStr;
String sqlStr = "";
sql = "";
DeptStr = Convert.ToString(DeptcomBox.SelectedValue.ToString());
部门号
if (check1.Checked)
{
DeptStr = Convert.ToString(DeptcomBox.SelectedValue.ToString());
sqlStr = String.Format("select [Salary].EmpID as '职员号', Year as '年份', Month as '月份', Salary as '工资o' from [Salary],[Employee_Info] where DeptID='{0}'and Salary.EmpID=Employee_Info.EmpID", DeptStr);
if (count == 0)
{
sql += sqlStr;
count = 1;
}
else
{
sql += " intersect " + sqlStr;
}
check1.Checked = false;
}
年份
if (check2.Checked)
{
YearStr = Convert.ToString(YearComBox.SelectedItem.ToString());
if(this.mainForm.operatorRight==2)
{
sqlStr = String.Format("select EmpID as '职员号', Year as '年份', Month as '月份', Salary as '工资' from [Salary] where Year='{0}'", YearStr);
}
else if(this.mainForm.operatorRight==1)
{
sqlStr = String.Format("select Salary.EmpID as '职员号', Year as '年份', Month as '月', Salary as '工资' from Salary,Employee_Info,Dept_Info where Year='{0}'and Salary.EmpID=Employee_Info.EmpID and Employee_Info.DeptID=Dept_Info.DeptID and Dept_Info.DeptID in (select DeptID from Employee_Info where EmpID='{1}')", YearStr,this.mainForm.person.userName);
}
else
{
sqlStr = String.Format("select EmpID as '职员号', Year as '年份', Month as '月份', Salary as '工资á' from [Salary] where Year='{0}'and EmpID='{1}'", YearStr,this.mainForm.person.userName);
}
if (count == 0)
{
sql += sqlStr;
count = 1;
}
else
{
sql += " intersect " + sqlStr;
}
check2.Checked = false;
}
月份
if (check3.Checked)
{
MonthStr = Convert.ToInt32(MonthComBox.SelectedItem.ToString());
if (this.mainForm.operatorRight == 2)
{
sqlStr = String.Format("select EmpID as '职员号', Year as '年份', Month as '月份', Salary as '工资' from [Salary] where Month='{0}'", MonthStr);
}
else if (this.mainForm.operatorRight == 1)
{
sqlStr = String.Format("select Salary.EmpID as '职员号', Year as '年份', Month as '月份', Salary as '工资' from Salary,Employee_Info,Dept_Info where Month='{0}'and Salary.EmpID=Employee_Info.EmpID and Employee_Info.DeptID=Dept_Info.DeptID and Dept_Info.DeptID in (select DeptID from Employee_Info where EmpID='{1}')", MonthStr, this.mainForm.person.userName);
}
else
{
sqlStr = String.Format("select EmpID as '职员号', Year as '年份', Month as '月份', Salary as '工' from [Salary] where Month='{0}' and EmpID='{1}'", MonthStr,this.mainForm.person.userName);
}
if (count == 0)
{
sql += sqlStr;
count = 1;
}
else
{
sql += " intersect " + sqlStr;
}
check3.Checked = false;
}
自己工资
if (check4.Checked)
{
sql = String.Format("select EmpID as '职员号', Year as '年份', Month as '月份', Salary as '工资' from Salary where EmpID='{0}'", this.mainForm.person.userName);
if (count == 0)
{
sql += sqlStr;
count = 1;
}
else
{
sql += " intersect " + sqlStr;
}
check4.Checked = false;
}
SqlCommand command = new SqlCommand(sql, connection);
try
{
connection.Open();
SqlDataReader data = command.ExecuteReader();
if (data.Read())
{
BindData(sql);
}
else
{
if(this.mainForm.operatorRight==2)
{
sql = String.Format("select EmpID as '职员号', Year as '年份', Month as '月份', Salary as '工资' from Salary");
}
else if (this.mainForm.operatorRight == 1)
{
sql = String.Format("select Salary.EmpID as '职员号', Year as '年份', Month as '月份', Salary as '工资' from Salary,Employee_Info,Dept_Info where Salary.EmpID=Employee_Info.EmpID and Employee_Info.DeptID=Dept_Info.DeptID and Dept_Info.DeptID in (select DeptID from Employee_Info where EmpID='{0}')", this.mainForm.person.userName);
}
else
{
sql = String.Format("select EmpID as '职员号', Year as '年份', Month as '月份', Salary as '工资' from Salary where EmpID='{0}'", this.mainForm.person.userName);
}
BindData(sql);
MessageBox.Show("查询失败,没有符合要求工资信息", "查找失败?", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "数据库操作失败1", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
finally
{
connection.Close();
}
}
private void LoadOrCancel()
{
mainForm = (MainForm)this.ParentForm;
YearComBox.SelectedIndex = 0;
MonthComBox.SelectedIndex = 0;
YearComBox.Enabled = false;
MonthComBox.Enabled = false;
DeptcomBox.Enabled = false;
btnYes.Enabled = false;
BindDeptComBox();
if (this.mainForm.operatorRight == 2)
{
sql = String.Format("select EmpID as '职员号', Year as '年份', Month as '月份', Salary as '工资' from Salary");
}
else if (this.mainForm.operatorRight == 1)
{
DeptcomBox.Visible = false;
check1.Visible = false;
sql = String.Format("select Salary.EmpID as '职员号', Year as '年份', Month as '月份', Salary as '工资' from Salary,Employee_Info,Dept_Info where Salary.EmpID=Employee_Info.EmpID and Employee_Info.DeptID=Dept_Info.DeptID and Dept_Info.DeptID in (select DeptID from Employee_Info where EmpID='{0}')", this.mainForm.person.userName);
}
else
{
check1.Visible = false;
check4.Visible = false;
DeptcomBox.Visible = false;
sql = String.Format("select EmpID as '职员号', Year as '年份', Month as '月份', Salary as '工资' from Salary where EmpID='{0}'", this.mainForm.person.userName);
}
BindData(sql);
count = 0;
}
private void groupBox2_Enter(object sender, EventArgs e)
{
}
2.对表增删改部分:
ataGrid数据绑定
private void BindData()
{
sql = String.Format("select EmpID as '职员号', Year as '年份', Month as '月份', Salary as ' 工资' from Salary");
SqlConnection connection = new SqlConnection(connString);
SqlDataAdapter dataAdapter = new SqlDataAdapter(sql, connection);
DataSet dataSet = new DataSet();
dataAdapter.Fill(dataSet);
dataGridView1.DataSource = dataSet.Tables[0];
dataGridView1.Columns[0].DataPropertyName = "职员号";
dataGridView1.Columns[1].DataPropertyName = "年份";
dataGridView1.Columns[2].DataPropertyName = "月份";
dataGridView1.Columns[3].DataPropertyName = "工资";
}
删除
private void btn3_Click(object sender, EventArgs e)
{
cleartext();
textreadwrite();
btnOkOrCancel();
combMonth.Enabled = true;
combYear.Enabled = true;
txt4.ReadOnly = true;
opterate = "delete";
}
修改或更新职职员资信息
private void btnOk_Click(object sender, EventArgs e)
{
btnOkOrCancel();
btnOk.Enabled = false;
EmpID = txt1.Text;
Year = Convert.ToString(combYear.SelectedItem.ToString());
Month = Convert.ToInt32(combMonth.SelectedItem.ToString());
String salary = txt4.Text;
if (salary == "")
{
salary = "0";
}
Salary = (float)Convert.ToDouble(salary.Trim());
int num = 0;
try
{
if (EmpID != "")
{
sql = String.Format("select count (*) from [Employee_Info] where EmpID='{0}'", EmpID);
SqlCommand command = new SqlCommand(sql, connection);
connection.Open();
int c = (int)command.ExecuteScalar();
connection.Close();
if (c > 0)
{
connection = new SqlConnection(connString);
connection.Open();
sql = String.Format("select count (*) from [Salary] where EmpID='{0}'and Year='{1}' and Month='{2}'", EmpID, Year, Month);
SqlCommand mycmd = new SqlCommand(sql, connection);
num = (int)mycmd.ExecuteScalar();
connection.Close();
职员工资信息存在
if (num > 0)
{
if (opterate == "insert")
{
MessageBox.Show("录入不成功,您要录入职员工资信息已存在!", "录入失败", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
textreadonly();
}
else if (opterate == "update")
{
sql = String.Format("update [Salary] set Salary='{0}'where EmpID='{1}' and Year='{2}' and Month='{3}'", Salary, EmpID, Year, Month);
connection.Open();
command = new SqlCommand(sql, connection);
command.ExecuteNonQuery();
connection.Close();
BindData();
textreadonly();
MessageBox.Show("更新成功! ", "更新成功", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
else
{
connection.Open();
sql = String.Format("delete from [Salary] where EmpID='{0}'and Year='{1}' and Month='{2}'", EmpID, Year, Month);
command = new SqlCommand(sql, connection);
command.ExecuteNonQuery();
connection.Close();
BindData();
MessageBox.Show("删除成功! ", "删除成功", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
textreadonly();
}
}
else
{
if (opterate == "insert")
{
sql = String.Format("insert into [Salary](EmpID,Year,Month,Salary)values ('{0}','{1}','{2}','{3}')", EmpID, Year, Month, Salary);
command = new SqlCommand(sql, connection);
connection.Open();
command.ExecuteNonQuery();
connection.Close();
BindData();
MessageBox.Show("录入成功! ", "录入成功", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
textreadonly();
}
else if (opterate == "update")
{
MessageBox.Show("修改失败,不存在要修改工资信息! ", "修T改失败", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
textreadonly();
}
else
{
MessageBox.Show("删除失败,不存在要删除工资信息!", "删除失败", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
textreadonly();
}
}
}
else
{
MessageBox.Show("不存在要管理职员工资信息! ", "操作失败", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
textreadonly();
}
}
else
{
MessageBox.Show("操作失败,请填入职员号!", "操作失败", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
textreadonly();
}
btnModi();
btnCancel.Enabled = true;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "数据库操作失败1", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
finally
{
connection.Close();
}
}
3. 相关界面
录入和修改键和关闭键能用,确定和取消键不能用
private void btnModi()
{
btn1.Enabled = true;
btn2.Enabled = true;
btn3.Enabled = true;
btnOk.Enabled = false;
btnCancel.Enabled = false;
}
录入和修改键不能用,确定和取消键和关闭键能用
private void btnOkOrCancel()
{
btn1.Enabled = false;
btn2.Enabled = false;
btn3.Enabled = false;
btnCancel.Enabled = true;
btnOk.Enabled = true;
}
将文本框清空
private void cleartext()
{
txt1.Text = "";
txt4.Text = "";
}
取消按钮
private void btnCancel_Click(object sender, EventArgs e)
{
combYear.SelectedIndex = 0;
combMonth.SelectedIndex = 0;
combMonth.Enabled = false;
combYear.Enabled = false;
textreadonly();
btnModi();
BindData();
}
录入按钮
private void btn1_Click(object sender, EventArgs e)
{
cleartext();
textreadwrite();
btnOkOrCancel();
combMonth.Enabled = true;
combYear.Enabled = true;
opterate = "insert";
}
修改按钮
private void btn2_Click(object sender, EventArgs e)
{
cleartext();
textreadwrite();
btnOkOrCancel();
opterate = "update";
combMonth.Enabled = true;
combYear.Enabled = true;
}
四 职员工资界面:
五 课程设计总结:
此次课程设计,和另外两个同学一起,完成了人事工资管理系统设计,经过此次课程设计,提升了我们团体协作能力,加强了我们动手、思索和处理问题能力,检验了我所学习知识,在设计过程中,和同学分工设计,和同学们相互探讨,相互学习,相互监督。经过完成系统设计,使自己对C#编写C/S系统有了深入认识