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

时间:2013-08-03 15:49:01

标签: c# sql-server

我有以下方法:

   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以显示表中的其余记录。代码不会删除任何记录

2 个答案:

答案 0 :(得分:4)

这:

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();

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

答案 1 :(得分:-1)

问题是可能没有值'empID'的empID。

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