使用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以显示表中的其余记录。该代码不会删除任何记录
这:
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建议的那样。