所以我想从我的列表框中删除一行,这是用户按下删除键的地方,程序应该执行它的操作。唯一的事情是它没有。如果我只是删除名字,它会正常工作并且我的数据库会更新,但是当我尝试同时删除名字和姓氏时,它不起作用。有人可以帮帮我吗。我是新手,这是学校的作业。非常感谢。
干杯
SqlConnection cn;
cn = new SqlConnection();
cn.ConnectionString = "Data source=(local); Initial Catalog=INT422Assignment1;Integrated Security=SSPI;";
cn.Open();
SqlCommand cmd;
cmd = new SqlCommand();
cmd.Connection = cn;
cmd.CommandText = "DELETE FROM myTable WHERE firstName=@firstName AND lastName=@lastName";
SqlParameter param;
param = new SqlParameter("@firstName", SqlDbType.VarChar);
param.Direction = ParameterDirection.Input;
param.Value = firstNameDelete.Text;
cmd.Parameters.Add(param);
param = new SqlParameter("@lastName", SqlDbType.VarChar);
param.Direction = ParameterDirection.Input;
param.Value = lastNameDelete.Text;
cmd.Parameters.Add(param);
cmd.ExecuteNonQuery();
cn.Close();
MessageBox.Show("Deleted");
this.Close();
我认为您从一开始就采取了错误的方法。假设您有两个 John,John Smith 和 John Doe。如果您的查询是:
DELETE FROM myTable WHERE FirstName="John";
这意味着所有以“John”作为名字的条目都将被删除,包括 Johns。
如果你有:
DELETE FROM myTable WHERE FirstName="John" AND LastName="Doe";
那么理论上 John Doe 将被移除。同样,如果您有多个 John Doe 怎么办?您要全部删除吗?
如果您想删除单个条目,您想要的是根据列表中包含唯一 ID 的隐藏列进行删除,或者更好的是,将您的列表框绑定(bind)到您的表格。
我是一名优秀的程序员,十分优秀!