使用 C# 和 SQL where 子句删除 SQL 表记录



我想使用 C# 删除 SQL 表记录。我已经尝试了下面提到的代码片段,但它不起作用。但是,该消息显示"数据记录已删除!我在声明中也找不到问题。

private void delemp_Click(object sender, EventArgs e)
{
try
{
if(MessageBox.Show("do you really want to delete this","Deleting ", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) == DialogResult.Yes)
{
EMP.DELETEMP(this.dataGridView1.CurrentRow.Cells[0].Value.ToString());
MessageBox.Show("deleting Seccussfully","Deleting ");
this.dataGridView1.DataSource = EMP.GET_ALL_EMP();
}
else
{
MessageBox.Show("Deleting Canceled ");
}
}
catch (Exception)
{
MessageBox.Show("ERROR");
}            
}

这就是类

public void DELETEMP(string ID)
{
DAL.dataaccesslayer DAL = new DAL.dataaccesslayer();
DAL.open();
SqlParameter[] param = new SqlParameter[1];
param[0] = new SqlParameter("@ID", SqlDbType.NVarChar);
param[0].Value = ID;
DAL.executcommand("DELETEMP", param);
DAL.close();
}

>EMP.DELETEMP()不会返回任何类型的结果,因此您无法知道记录是否实际被删除。只要EMP.DELETEMP()不引发异常(可能不会(,您的代码将始终显示"删除 Seccussally"消息。

因此,很可能EMP.DELETEMP()实际上并没有删除任何内容。要解决此问题,您需要找出原因。看起来数据库中可能有一个名为DELETEMP的存储过程,它采用 ID(整数?(参数。是否测试过此存储过程?

此外,我们假设DAL按预期工作。我不承认这一点。它可能不完全合法,因为您调用的方法DAL.executcommand()甚至拼写不正确。

最新更新