实现员工的添加,查询和删除,并用dgvList显示出来

1.1///先声明一个单列集合

public List list = new List();

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 llist = new List();

//遍历集合中的对象

foreach (SE item in list)

{

//判断要查询对象的工号的下标是否存在

if(item.Id.IndexOf(txt01.Text.Trim())!=-1)

{

llist.Add(item); //把数据加入到临时集合中

}

}

//把查询到的数据绑定到dgvList中

dgvList.DataSource = new BindingList(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(list);

}

1.6///声明一个静态的双列集合

public static Dictionary recordList = new Dictionary();

//单击签到

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("女");

}

java员工打卡情况_考勤信息(员工打卡)相关推荐

  1. 坐地铁可以刷学生卡吗_在沈阳办的公交卡能刷地铁吗?是学生卡,卡上写的是盛京通...

    展开全部 截止2019年4月1日,在沈阳办的公交卡(盛京通62616964757a686964616fe59b9ee7ad9431333431346331)能是不能刷地铁的,盛京通学生卡有以下几个类型 ...

  2. JAVA设计一个fan类_北京信息科技大学java语言程序设计-类和对象

    北京信息科技大学java语言程序设计-类和对象 [实验名称]实验2 类和对象 [实验目的] 1.学习和掌握Java创建对象的方法. 2.学习和掌握通过创建对象.使用类的方法. 3.学习和掌握Java类 ...

  3. java阴阳师抽卡概率_阴阳师妖怪屋抽卡概率分析 平民抽卡心得分享

    阴阳师妖怪屋手游中抽卡概率是怎样的呢?作为一款卡牌游戏,其中最核心的玩法就是就是抽卡了,然后进行式神培养,玩家都想要在卡池中抽到SSR式神,但是其概率还是比较低的,想要全图鉴需要花费大量的金钱,下面小 ...

  4. java状态模式所有情况_轻松掌握Java状态模式

    定义:在状态模式(State Pattern)中,类的行为是基于它的状态改变的. 特点: 1.封装了转换规则. 2.枚举可能的状态,在枚举状态之前需要确定状态种类. 3.将所有与某个状态有关的行为放到 ...

  5. java项目添加功能失败_学生信息的添加 Java web简单项目初试(失败)

    题目要求: 1登录账号:要求由6到12位字母.数字.下划线组成,只有字母可以开头:(1分) 2登录密码:要求显示"• "或"*"表示输入位数,密码要求八位以上字 ...

  6. 手机吃鸡语音服务器异常是怎么回事,绝地求生语音卡怎么办_绝地求生新版本语音卡解决办法介绍_游戏吧...

    绝地求生第21轮更新后,出现了很多问题最常见的就是游戏语音出错以及无法返回大厅.今天游戏吧小编就为大家带来绝地求生新版本语音卡解决办法介绍.希望对大家有所帮助. 在21轮更新后,有小伙伴反应语音时常出 ...

  7. sourcetree 卡顿_快手与直播延迟卡顿较劲的这些年

    2020 年,COVID-19 成为"世界的通用语言",截止 7 日 2 日,全球累计确诊超过 1071 万人.目前,虽然世界各国不再提倡全民主动宅家战"疫", ...

  8. spyder一打开就卡了_欧姆龙plc 用 SD 卡上传/下载程序

    以Nx102为例,NJ类似. 使用 SD 卡将 Sysmac Studio 编写的程序传入 NX1P2 内: 使用 SD 卡对 NX1P2 的程序进行备份, 查看备份的程序, 并把备份的程序传入另一台 ...

  9. 黑苹果音频卡顿_手机耗电大、卡顿怎么办?只需关掉这个按键轻松解决,去试试...

    阅读本文前,请您先点击上面的"议科技",关注,这样您就可以继续收到最新文章了.每天都有分享.完全是免费订阅,请放心关注. 大家好,很高兴认识大家,话不多说,进入正题,手机现在已经是 ...

最新文章

  1. 写给开发者的 10 条机器学习建议
  2. java 调用存储过程structdescriptor,Java调用oracle存储过程,集合入参的正确姿势
  3. 完整叙述html的语法结构,html article介绍与语法结构
  4. css background-position
  5. 【Redis】13.Redis服务器配置redis.conf
  6. “\”C++中的换行符
  7. 使用插件创建 .NET Core 应用程序
  8. linux搭建vsftp服务器_Linux配置VSFTP服务器的方法
  9. Java程序员一些常用的日志和其他Linux命令(自用)
  10. jdbc mysql url写法_MySQL第04篇:JDBC
  11. Matlab中冒号“:“的使用方法
  12. 实时计算在天猫双十一大屏中的应用
  13. 如何在程序中不用加号实现加法_python不用加号实现加法
  14. 《那些年啊,那些事——一个程序员的奋斗史》——18
  15. java界面加入图片_JAVA界面设计怎么插入背景图片。
  16. vue 路由跳转 外部链接
  17. Attention概述
  18. 如何查mysql里有多少条数据_mysql快速查询数据库中有多少条数据
  19. Failed installing 'Tomcat6' service
  20. (ChatGPT)429 You are being rate limited

热门文章

  1. 既然选择远方,那就只顾风雨兼程
  2. WIN10 NET. framework 3.5安装方法
  3. Activity学习日记(一)
  4. 跟踪百度服务器的路由信息,路由跟踪
  5. C#设计模式——策略模式
  6. vue中pc端大屏怎么进行rem适配(lib-flexible + postcss-plugin-px2rem)
  7. Django练习 day04, 05, 06,07
  8. 人事面试题目之——人事65问
  9. 明翰Docker笔记V0.1(持续更新)
  10. 爬取所有地区的历史天气