实现员工的添加,查询和删除,并用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("女");
}