Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在SQL客户端(C#windows窗体应用程序)中执行软删除和取消删除_C#_Sql Server_Sqlclient - Fatal编程技术网

如何在SQL客户端(C#windows窗体应用程序)中执行软删除和取消删除

如何在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

我正在尝试软删除表中的一行。一旦我更新它,如果我想取消删除我的行,我应该能够这样做。另外,我喜欢清除删除,永久删除。我使用的是使用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.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注入之后,现在我知道你们在谈论什么了。