C# WindowsForm 员工管理系统二【删除】

上一章已经完成了用户登录,那么接下来我们希望看到所有员工的信息,以便达到管理员工的目的。
在数据库”Staff“中新建StaffInfo表,如图:
这里写图片描述
因为StaffInfo表中与StaffAccount表中的ID对应,所有两表的ID存在主键与外键的关系,这里我将StaffInfo.ID设置为主键 StaffAccount.ID设置为外键。
这里写图片描述

打开Visual Studio中项目中新建一个Windows窗体(右击项目名->添加->新建项->Windows窗体)命名为ManagerForm
在工具箱中找到DataGridView控件,拖入ManagerForm窗体
在工具箱中找到DataGridView控件,拖入ManagerForm窗体
单击DataGridView控件,看见右上角会出现黑色三角形。
单击黑色三角形->选择数据源->StaffInfo
在登录窗体代码中增加显示ManagerForm窗体 代

MessageBox.Show("系统登录成功,正在跳转主页面...");
ManagerForm managerForm = new ManagerForm();
managerForm.Show();
this.Hide();

运行后可看到StaffInfo中录入的数据
这里写图片描述
增加一个“删除记录”按钮,双击添加单击事件

private void btnDelete_Click(object sender, EventArgs e)
        {
            string sql = "delete from StaffAccount where 1=1";
            if (dgvManager.CurrentRow.Selected)
            {
                sql = sql + "and ID=" + Convert.ToInt32(dgvManager.CurrentRow.Cells[0].Value.ToString());
            }
            int n = 0;
            string connStr = ConfigurationManager.ConnectionStrings["WindowsFormsApplication6.Properties.Settings.staffConnectionString"].ConnectionString;
            SqlConnection conn = new SqlConnection(connStr);
            SqlCommand cmd = new SqlCommand(sql, conn);
            conn.Open();
            n = cmd.ExecuteNonQuery();
            if (n == 0)
            {
                MessageBox.Show("不存在的ID!");
                return;

            }
            else if (n > 0)
            {
                MessageBox.Show("删除成功!");
            }
            conn.Close();                        this.staffInfoTableAdapter.Fill(this.staffDataSet.StaffInfo);//重新加载数据
            this.Refresh();
        }

因为我前面设置的是StaffInfo.ID为主键,StaffAccount.ID为外键,所有这里我们删除的是StaffAccount表中的记录
再为StaffAccount表增加一个触发器

ALTER trigger [dbo].[trigger_deleteStaff1]
on [dbo].[StaffAccount]
after delete
AS
begin delete StaffInfo
where
ID in(
select ID from deleted)
end

这样就可以删除外键之后再删除主键。

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页