实现员工的添加,查询和删除,并用dgvList显示出来
1.1///先声明一个单列集合 public List<SE> list = new List<SE>(); 1.2///初始化三个对象 private void FrmMain_Load(object sender, EventArgs e) { SE s1 = new SE(); s1.id = 20161000; s1.name = "张三"; s1.age = 20; s1.gender = "男"; SE s2 = new SE(); s2.id = 20161002; s2.name = "李四"; s2.age = 18; s2.gender = "男"; SE s3 = new SE(); s3.id = 20161004; s3.name = "凤姐"; s3.age = 20; s3.gender = "女"; 1.3//把数据添加到集合中并用dgvList加载出来 list.Add(s1); list.Add(s2); list.Add(s3); dgvList.DataSource =(list); }
1.4 private void btn01_Click(object sender, EventArgs e) { ///创建临时的单列集合来存储数据 List<SE> llist = new List<SE>(); //遍历集合中的对象 foreach (SE item in list) { //判断要查询对象的工号的下标是否存在 if(item.Id.IndexOf(txt01.Text.Trim())!=-1) { llist.Add(item); //把数据加入到临时集合中 } } //把查询到的数据绑定到dgvList中 dgvList.DataSource = new BindingList<SE>(llist); } 1.5 private void toolStripButton3_Click(object sender, EventArgs e) { ///删除前先考虑根据什么来删除数据 ///我根据员工工号来删除 首先得到工号 string id = dgvList.SelectedRows[0].Cells[0].Value.ToString(); //使用for循环来查找 for (int i = 0; i < list.Count; i++) { //判断数据是否相等再删除 if(list[i].Id==id) { list.RemoveAt(i); } } //删除后还得再重新绑定数据 dgvList.DataSource = new BindingList<SE>(list); }
1.6///声明一个静态的双列集合 public static Dictionary<string, Record> recordList = new Dictionary<string, Record>(); //单击签到 private void 签到ToolStripMenuItem_Click(object sender, EventArgs e) { //判断是否选中一行 if(dgvList.SelectedRows.Count!=1) { MessageBox.Show("请选中一行"); return; } //把选中的数据传给记录列表 string no = dgvList.SelectedRows[0].Cells[0].Value.ToString(); foreach (string id in recordList.Keys) { if(no==id) { MessageBox.Show("您已签到过"); return; } } Record record = new Record(); record.ID = no; record.Name= dgvList.SelectedRows[0].Cells[1].Value.ToString(); record.StratTime = DateTime.Now; recordList.Add(record.ID,record); MessageBox.Show("签到成功"); }
1.7///单击签退 private void 签退ToolStripMenuItem_Click(object sender, EventArgs e) { //判断是否选中一行 if (dgvList.SelectedRows.Count != 1) { MessageBox.Show("请选中一行"); return; } //把选中的数据传给记录列表 string no = dgvList.SelectedRows[0].Cells[0].Value.ToString(); bool falg = false; //判断是否有签到记录 foreach (string key in recordList.Keys) { if(key==no) { ///执行签到 recordList[key].EndTime = DateTime.Now; MessageBox.Show("签退成功"); falg = true; break; } } if(falg==false) { MessageBox.Show("您还没有签到"); } }
1.8///声明一个Record类 public class Record { public string Name { get; set; } public DateTime StratTime { get; set; } public DateTime EndTime { get; set; } public String ID { get; set; } } 1.9///调用签到记录窗口 private void toolStripButton4_Click(object sender, EventArgs e) { FrmRecord record = new FrmRecord(); record.Show(); } 2.0///调用增加员工的窗口 private void toolStripButton1_Click(object sender, EventArgs e) { FrmAdd add = new FrmAdd(); Hide(); add.Show(); } 2.1///添加员工 private void btn01_Click(object sender, EventArgs e) { ///通过保存把数据加到集合中 //首先创建一个对象并赋值 SE se = new SE(); se.Id = txt01.Text; se.Name = txt03.Text; se.Age = txt02.Text; se.Gender = cbo01.Text; foreach (SE item in FrmMain.list) { if (item.Id == txt01.Text) { MessageBox.Show("此工号已存在"); return; } } //把数据加到list集合中,因为集合是在主窗体中声明的需要调用 FrmMain main = new FrmMain(); FrmMain.list.Add(se); main.Show(); }
2.2
private void FrmAdd_Load(object sender, EventArgs e) { //把男和女添加到下拉列表框中 cbo01.Items.Add("男"); //把男默认选中 cbo01.SelectedIndex=0; cbo01.Items.Add("女"); }