您的位置:首页 > 编程语言 > C#

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

2015-09-24 17:04 471 查看
上一章已经完成了用户登录,那么接下来我们希望看到所有员工的信息,以便达到管理员工的目的。

在数据库”Staff“中新建StaffInfo表,如图:



因为StaffInfo表中与StaffAccount表中的ID对应,所有两表的ID存在主键与外键的关系,这里我将StaffInfo.ID设置为主键 StaffAccount.ID设置为外键。



打开Visual Studio中项目中新建一个Windows窗体(右击项目名->添加->新建项->Windows窗体)命名为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


这样就可以删除外键之后再删除主键。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: