使用c#删除sql表中的数据,并将其显示在gridview中

本文关键字:显示 gridview 数据 删除 sql 使用 | 更新日期: 2023-09-27 18:26:29

我有以下方法:

   Connection c =new Connection();
    SqlCommand cmd = new SqlCommand();
    String empID = toolStripTextBox1.Text;
    cmd.CommandText = "DELETE FROM tblEmployee WHERE employeeNumber='empID'";
    cmd.Connection = c.con;
    c.con.Open();
    dataGridView1.CurrentCell = null;
    int numberDeleted = cmd.ExecuteNonQuery();
    MessageBox.Show(numberDeleted.ToString() + " employees were deleted.<br>");
    c.con.Close();

我正在尝试删除表中的一条记录,并更新gridview以显示表中的其余记录。该代码不会删除任何记录

使用c#删除sql表中的数据,并将其显示在gridview中

这:

DELETE FROM tblEmployee WHERE employeeNumber='empID'

应按照以下方式转换为使用参数化查询:

cmd.CommandText="DELETE FROM tblEmployee WHERE employeeNumber=@id";

原因是您之前的语句只是将delete from ...部分与字符串'empid'连接起来,我认为这不是您想要的。你在追求这样的东西:

delete from ... where employeeNumber={some_number},其中some_number参数

为了将参数传递给SQL语句,您需要执行以下操作:

cmd.Parameters.AddWithValue("@id",empID);//I assume empID is a variable containing an ID
cmd.ExecuteNonQuery();

如果您希望更改立即反映在网格上,则需要再次选择数据并重新绑定网格。

问题是可能不存在值为"empID"的empID。。

您没有在命令中放入empID的值,而是添加了一个精确的字符串"empID",该字符串在表中找不到。将empID值作为参数,如Icarus建议的那样。