作为一个完善的管理系统,员工管理是重要的一环,主要分为对员工的增加,查询,修改与删除。
一、员工信息表的设计:
在数据库Restaurant中添加“员工信息”表,根据实际情况可将员工的属性:员工编号、员工姓名、身份证号、性别、年龄、电话、身份作为表的属性列。
表的列的设计如下图所示:
二、员工的增加:
- 界面设计
在员工增加界面中,将需要添加的员工的具体信息写入,点击确认,就可以将对应的信息加入到数据库中。
界面如下:
- 加入数据库
将信息加入数据库前先要读取目前的数据信息,代码如下:
string id = Worker_ID.Text.Trim();
string name = Woker_Name.Text.Trim();
string role = cbx_role.Text.Trim();
string cardnum = Worker_CardNum.Text.Trim();
string sex = null;
string age = Worker_Age.Text.Trim();
string tel = Worker_Tel.Text.Trim();
foreach (object sd in this.Controls)
{
RadioButton rbt = sd as RadioButton;
if (rbt != null && rbt.Checked == true)
{
sex = rbt.Text.Trim();
break;
}
View Code
要将保存下来的信息加入到数据库中,要用到数据库中的命令,先连接到数据库中,然后执行需要的操作,再返回结果,代码如下:
string strConn = @"Data Source=.;Initial Catalog=Restaurant;Integrated Security=SSPI; ";
SqlConnection conn = new SqlConnection(strConn);
conn.Open();
string sqlcom = string.Format(@"insert into 员工信息(密码,员工编号,员工姓名,身份证号,性别,年龄,电话,身份)values('123456','{0}','{1}','{2}','{3}','{4}','{5}','{6}')", id, name, cardnum, sex, age, tel,role);
SqlCommand cmd = new SqlCommand(sqlcom, conn);
SqlDataReader dr = cmd.ExecuteReader();
dr.Close();
string sqlcom2 = string.Format(@"insert into 登录表(编号,用户名,身份,密码)values('{0}','{1}','{2}','123456')", id, name, role);
SqlCommand cmd2 = new SqlCommand(sqlcom2, conn);
SqlDataReader dr2 = cmd2.ExecuteReader();
dr2.Close();
MessageBox.Show("成功插入员工信息!!");
conn.Close();
View Code
三、员工查询:
- 界面设计
删除和修改员工信息都需要先查询到该员工的信息,所以我把删除,修改,查询操作整合到一个界面中,查询结果放到listview控件中,界面如下:
- 查询操作
查询前先要连接到数据库读取数据,代码见上面。
在查询过程中,由于条件太多,这里只提供单个条件的查询,其中用到的还是数据库中的命令,代码如下:
string strid = txb_wid.Text;
string strname = txb_wname.Text;
string strsex = cbx_wsex.Text;
string stragef = txb_wagef.Text;
string straget = txb_waget.Text;
string strrole = cbx_wrole.Text;
string sqlcommond = "select * from 员工信息";
if (strid != "")
{
sqlcommond = string.Format(@"select * from 员工信息 where 员工编号 ='" + strid + "'");
}
else if (strname != "")
{
sqlcommond = string.Format(@"select * from 员工信息 where 员工姓名 ='" + strname + "'");
}
else if (stragef != ""&&straget=="")
{
sqlcommond = string.Format(@"select * from 员工信息 where 年龄 >'" + stragef + "'");
}
else if (stragef != "" && straget != "")
{
sqlcommond = string.Format(@"select * from 员工信息 where 年龄 between '" + stragef + "' and '" + straget + "'");
}
else if (strrole != "" )
{
sqlcommond = string.Format(@"select * from 员工信息 where 身份 ='" + strrole + "'");
}
else if (strsex != "" )
{
sqlcommond = string.Format(@"select * from 员工信息 where 性别 ='" + strsex + "'" );
}
View Code
将读取的数据库的数据保存在listview中,先新定义一个listviewitem类型的变量it,将数据库中的一行数据保存在it中,再将在it加入到listview1中,知道将满足条件的桌台都输出完为止,之后关闭数据库,代码如下:
//建立SqlCommand对象,负责SQL语句的执行和存储过程的调用;
SqlCommand cmd = new SqlCommand(sqlcommond, conn);
//对SQL或存储过程执行后返回的“结果”进行操作
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;
SqlDataReader dr = cmd.ExecuteReader();
listView1.Items.Clear();//再次按查询时将上次的查询结果清除
while (dr.Read())
{
//MessageBox.Show("1111");
//构建一个ListView的数据,存入数据库数据,以便添加到listView1的行数据中
ListViewItem it = new ListViewItem();
it.Text = dr["员工编号"].ToString();
it.SubItems.Add(dr["员工姓名"].ToString());
it.SubItems.Add(dr["身份证号"].ToString());
it.SubItems.Add(dr["性别"].ToString());
it.SubItems.Add(dr["年龄"].ToString());
it.SubItems.Add(dr["电话"].ToString());
it.SubItems.Add(dr["身份"].ToString());
//将lt数据添加到listView1控件中
listView1.Items.Add(it);
}
conn.Close();//关闭数据库
View Code
- 修改员工信息
修改时,要将员工原有的信息显示在修改窗体的控件中,代码如下:
if (listView1.SelectedItems.Count > 0)
{
UpdataWorker upworker = new UpdataWorker();
upworker.defid = listView1.SelectedItems[0].SubItems[0].Text;
upworker.defname = listView1.SelectedItems[0].SubItems[1].Text;
upworker.defcardnum = listView1.SelectedItems[0].SubItems[2].Text;
upworker.defsex = listView1.SelectedItems[0].SubItems[3].Text;
upworker.defage = listView1.SelectedItems[0].SubItems[4].Text;
upworker.deftel = listView1.SelectedItems[0].SubItems[5].Text;
upworker.defrole = listView1.SelectedItems[0].SubItems[6].Text;
upworker.ShowDialog();
string str = listView1.SelectedItems[0].SubItems[0].Text;
//MessageBox.Show(str);
listView1.SelectedItems.Clear();//将选择的项改为为选择
}
else
{
MessageBox.Show("请选择你要更新的员工!");
}
View Code
在控件中进行需要的修改操作后,点击更新即可,该操作会读取当前控件中的信息,然后连接数据库进行数据库的更新操作,代码如下:
int id = Convert.ToInt32(txb_upid.Text);
string name = txb_upname.Text.Trim();
string cardnum = txb_upcardnum.Text.Trim();
string sex = cbx_upsex.Text.Trim();
string age = txb_upage.Text.Trim();
string tel = txb_uptel.Text.Trim();
string role = cbx_role.Text.Trim();
string password = txb_password.Text.Trim();
string strConn = @"Data Source=.;Initial Catalog=Restaurant;Integrated Security=SSPI; ";
SqlConnection conn = new SqlConnection(strConn);
conn.Open();
//建立SqlCommand对象,负责SQL语句的执行和存储过程的调用;
string sqlcom = string.Format(@"update 员工信息 set 员工姓名 = '" + name + "',身份证号 = '" + cardnum + "',性别 = '" + sex + "',年龄 = '" + age + "',电话 = '" + tel + "' where 员工编号 = '" + id + "'");//插入数据是数字就无 ''。。。
SqlCommand cmd = new SqlCommand(sqlcom, conn);
SqlDataReader dr = cmd.ExecuteReader();
dr.Close();
string sqlcom2 = string.Format(@"update 登录表 set 用户名 = '" + name + "',身份 = '" + role + "',密码 = '" + password + "' where 员工编号 = '" + id + "'");//插入数据是数字就无 ''。。。
SqlCommand cmd2 = new SqlCommand(sqlcom2, conn);
SqlDataReader dr2 = cmd.ExecuteReader();
dr2.Close();
MessageBox.Show("成功更新员工!!");
conn.Close();
View Code
- 删除员工
在删除员工时从数据库中删除后,在listview中也要一并删除。删除listview中选中的一行,需要获取选中的行的索引,然后通过listview1.items.remove(listview1.tems[索引值])。代码如下:
if (listView1.SelectedItems.Count > 0)
{
int id = Convert.ToInt32(listView1.SelectedItems[0].SubItems[0].Text);
string strConn = @"Data Source=.;Initial Catalog=Restaurant;Integrated Security=SSPI; ";
SqlConnection conn = new SqlConnection(strConn);
conn.Open();
string sqlcommond = string.Format(@"delete from 员工信息 where 员工编号 = '" + id + "'");
//建立SqlCommand对象,负责SQL语句的执行和存储过程的调用;
SqlCommand cmd = new SqlCommand(sqlcommond, conn);
//对SQL或存储过程执行后返回的“结果”进行操作
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;
cmd.ExecuteReader();
MessageBox.Show("成功从数据库中删除");
conn.Close();
//删除选择项
int lisnum = listView1.Items.IndexOf(listView1.FocusedItem);
listView1.Items.Remove(listView1.Items[lisnum]);
}
else
{
MessageBox.Show("请选择你要删除的员工!");
}
View Code