如何在SQL客户端(C#windows窗体应用程序)中执行软删除和取消删除
我正在尝试软删除表中的一行。一旦我更新它,如果我想取消删除我的行,我应该能够这样做。另外,我喜欢清除删除,永久删除。我使用的是使用C#Windows窗体(无实体)的SQL客户端 软删除代码如下:如何在SQL客户端(C#windows窗体应用程序)中执行软删除和取消删除,c#,sql-server,sqlclient,C#,Sql Server,Sqlclient,我正在尝试软删除表中的一行。一旦我更新它,如果我想取消删除我的行,我应该能够这样做。另外,我喜欢清除删除,永久删除。我使用的是使用C#Windows窗体(无实体)的SQL客户端 软删除代码如下: conn1.Open(); // conn1 which is my object and sql command open SqlCommand cmd = conn1.CreateCommand(); // sql command to create new object cmd.Comma
conn1.Open(); // conn1 which is my object and sql command open
SqlCommand cmd = conn1.CreateCommand(); // sql command to create new object
cmd.CommandType = CommandType.Text; // setting up text SQL command
cmd.CommandText = "IsDeleted = 0 from [Table] where ADD_UID= '" + textBox1.Text + "'"; //Select which Table and Row Based on Deleting
cmd.ExecuteNonQuery();
conn1.Close();
textBox1.Clear();
我得到这个错误:
但是,我可以使用delete命令删除一行,而不是说
isdelete
。在SQL客户机中,是否有其他方法可以在不使用实体的情况下进行软删除和物理删除 您执行SQL语句的方式会使您面临SQL注入攻击,因为人们可能会在您的文本框中包含文本,从而中断您的查询,并对您的数据库执行任意数量的恶意操作。如果将查询参数化,可以帮助避免这种情况。以下是一个示例:
var conn1 = new SqlConnection();
conn1.Open();
SqlCommand cmd = conn1.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "Update [TABLE] set IsDeleted = 0 where ADD_UID= @TextBoxVal";
SqlParameter param = new SqlParameter();
param.ParameterName = "TextBoxVal";
param.Value = textBox1.Text;
cmd.Parameters.Add(param);
cmd.ExecuteNonQuery();
conn1.Close();
textBox1.Clear();
UPDATE[Table]SET IsDeleted=0,其中…
可能的重复项请为该表共享您的CREATE Table
,因此,我们可以看到您现有的列名和类型。考虑使用<代码> <代码> > CON1和<代码> CMD< /代码>,以避免需要<代码>关闭< /代码>调用。这是一个常见的SQL注入攻击的总结,给你们一个大概的想法:我想你们没有理解我的观点。这不是关于注射,我是问如何执行软删除和取消删除,这是不工作的,我们确实理解你的观点。你有两个问题。一个是你认为你存在的问题——软删除。还有一个更糟糕的问题——SQL注入。读一读我的遗嘱,非常感谢。在阅读了sql注入之后,现在我知道你们在谈论什么了。