C#人事工资管理系统实验报告_第1页
免费预览已结束,剩余18页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

武汉工业学院数据库应用系统设计实验报告 学号: 090501102 姓名: 毕 波 班级: 计算机091 指导教师: 人事工资管理系统设计总说明:在当今社会,工资管理是一项必要而且很关键的工作。现在随着企业数量的急剧增加,处理人们的工资数据变的越来越烦琐艰巨。如今,计算机已经普及到了几乎每个学校、家庭,我们的学习和生活已经处处离不开计算机的存在。本系统依据开发要求主要应用于企业人事系统,完成对日常的工资增删查改的数字化管理。比较系统地对员工的信息和工资进行管理,查询、增添、修改、删除都变的非常简便,节省了大量的工作量。本课程设计是在学习了数据库应用系统和相关开发软件课程之后,让学生通过实际项目的设计、开发,培养学生独立进行数据库软件的建模、在计算机中进行数据库设计、并通过相关软件开发系统的能力。本系统的基本功能包括:部门信息的管理(查询、添加、修改、删除学生部门等)、职员信息的管理(录入、查询、修改、删除员工的信息等)、工资信息的管理(录入、查询、修改员工的工资等)。本系统主要用于对员工工资进行管理,能够进行插入、删除、修改、查询和显示员工的信息。登录该系统时,用户需要输入口令和密码,以确保数据的安全性,成功登录的用户,可以插入员工的信息和工资,并对员工的信息和工资进行增、删、改操作。基于上述想法,我们将员工数据保存到数据库中。我们要求系统能够高效快速的处理数据,并且要保证数据的正确性、相容性和安全性。所以在数据库中需要定义很多触发器,比如删除了某个员工的信息则删除对应的所有工资信息、活着删除了某部门则删除该部门所有的信息等。所以我们要从数据库中读取数据,并且和界面联系起来,同时也能将用户界面上的数据存储到数据库中。以上是设计此系统应该注意的地方和设计原则,以下就是遵循这些原则和标准设计出的一套完整的管理系统。 一 系统需求:根据题目需求,可以把系统分为三个部分:部门信息管理部分、职员信息管理部分和工资信息管理部分。本次实验中,我主要负责部门信息管理模块,题中需要对部门信息进行查询、添加、修改、删除操作,这些操作按是否改变数据库数据可分为两类:查询操作,只读取数据库信息,不对信息做修改;删除、更新和添加操作,需要对数据库中的数据进行读写操作。因此只要写两部分代码,查询部分:deptinfo_Query进行部门信息查询,查询数据库信息;信息管理部分:deptinfo_Manage,对信息进行更新、增加和删除。二 数据库设计1.数据需求人事工资管理系统需要完成的主要功能有:1员工的基本信息录入2.工资信息表的录入。3.部门信息表的查询、插入、修改、删除等操作。2.相关表表1 职工表:Employee_Info表2 工资表:Salary表3 部门表:Dept_Info表4 系统用户表:User_Info3.数据流程图人事工资管理系统登录 系统管理员职工表部门表工资表图 数据流程图三 员工工资相关操作 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.Tables0; dataGridView1.Columns0.DataPropertyName = 职工号?; dataGridView1.Columns1.DataPropertyName = 年份; dataGridView1.Columns2.DataPropertyName = 月份; dataGridView1.Columns3.DataPropertyName = 工资; 部门组合框的数据绑定 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.Tables0; 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 工资 from Salary,Employee_Info where DeptID=0and 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=0and 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=0and 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=0and 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, 数据库操作失败, 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.Tables0; dataGridView1.Columns0.DataPropertyName = 职工号; dataGridView1.Columns1.DataPropertyName = 年份; dataGridView1.Columns2.DataPropertyName = 月份; dataGridView1.Columns3.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=0and 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=0where 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=0and 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(删除失败,不存在要删除的工资

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论