C# WindowsForm 员工管理系统四【发放工资】
2015-09-27 17:16
465 查看
要实现“发放工资”的功能,首先数据库中应该有个表用来存储工资数据,其次发放工资是由管理员执行。
这里的FinalPay=[BasePay]+[WealPay])+[RewardPay])-[UnInsurance])-[HousingFund])
添加触发器完成三表同步删除,前面已经完成了StaffInfo和StaffAccount
现在添加StaffAccount和Pay表的删除触发器
双击“发放工资”按钮
双击“返回主界面”按钮,添加代码:
双击“退出系统”按钮,添加代码:
运行结果:
新建“Pay”表
注: 因为一个人会有多条记录,比如一月的工资和二月的工资,这两条记录所属同一个人,所以ID不为主键。这里的FinalPay=[BasePay]+[WealPay])+[RewardPay])-[UnInsurance])-[HousingFund])
添加触发器完成三表同步删除,前面已经完成了StaffInfo和StaffAccount
现在添加StaffAccount和Pay表的删除触发器
ALTER trigger [dbo].[trigger_deleteStaff2] on [dbo].[StaffAccount] after delete AS begin delete Pay where ID in( select ID from deleted) end
设计窗体
修改ManagerForm窗体,新增控件有(Button,Label,TextBox,GroupBox,)双击“发放工资”按钮
private void button2_Click(object sender, EventArgs e) { float basePay; float wealPay; float rewardPay; float unInsurance; float housingFund; try { basePay = (float)Convert.ToDouble(txtBasePay.Text.Trim()); wealPay = (float)Convert.ToDouble(txtWealPay.Text.Trim()); rewardPay = (float)Convert.ToDouble(txtRewardPay.Text.Trim()); unInsurance = (float)Convert.ToDouble(txtUnInsurance.Text.Trim()); housingFund = (float)Convert.ToDouble(txtHousingFund.Text.Trim()); } catch(Exception ex) { txtBasePay.Text = ""; MessageBox.Show("工资不是数字,警告!!"); return; } if (dgvManager.CurrentRow.Selected) { int id = Convert.ToInt32(dgvManager.CurrentRow.Cells[0].Value.ToString()); string today = DateTime.Now.ToLocalTime().ToString(); SqlParameter[] param = { new SqlParameter("@basePay",basePay), new SqlParameter("@wealPay",wealPay), new SqlParameter("@rewardPay",rewardPay), new SqlParameter("@unInsurance",unInsurance), new SqlParameter("@housingFund",housingFund), new SqlParameter("@date",today), new SqlParameter("@id",id) }; string sql = "insert into Pay(BasePay,WealPay,RewardPay,UnInsurance,HousingFund,Date,ID) values(@basePay,@wealPay,@rewardPay,@unInsurance,@housingFund,@date,@id)"; string connstr = ConfigurationManager.ConnectionStrings["WindowsFormsApplication6.Properties.Settings.staffConnectionString"].ConnectionString; SqlConnection conn = new SqlConnection(connstr); SqlCommand cmd = new SqlCommand(sql, conn); conn.Open(); cmd.Parameters.AddRange(param); int n = 0; n = cmd.ExecuteNonQuery(); if (n == 0) { MessageBox.Show("添加失败!"); return; } else if (n > 0) { MessageBox.Show("添加成功!"); } conn.Close(); } }
双击“返回主界面”按钮,添加代码:
this.Close();
双击“退出系统”按钮,添加代码:
Application.Exit();
运行结果:
相关文章推荐
- c#中的Rank属性和GetUpperBound,GetLowerBound(0)方法
- C# 动态数组
- 匹夫细说C#:可以为null的值类型,详解可空值类型
- C#----委托和事件(一)
- C#读写INI文件的方法
- 关于C#中的变量的初始化问题浅谈
- c# string转为DateTime
- C# 子窗口修改主窗口的控件
- Automatically Grab Images From a Website With C#
- [C#]简单离线注册码生成与验证
- 如何创建 C# 控制台应用程序
- c#中浅拷贝和深拷贝的理解
- C#中RichTextBox中英文混输-等宽字体
- 程序集与反射技术(C#)
- 从c#数组求和说起
- 使用Async和Await进行异步编程(C#版 适用于VS2015)
- 枚举类型
- 流程控制语句
- 变量
- C#学习笔记(五)