从数据库行(C#)中删除特定数据

从数据库行(C#)中删除特定数据,c#,sql-server,database,winforms,C#,Sql Server,Database,Winforms,我试图允许(用户)从数据库中删除数据并用更新的信息替换它 我遇到的问题是: 未处理SqlException:靠近“,”的语法不正确 此错误出现在第一个位置:sqlcmd.ExecuteNonQuery() 以下是“应用编辑”按钮的完整代码: 试试这个 private void applybtn_Click(object sender, EventArgs e) { Connection(); sqlconnection.Open(); sqlcm

我试图允许(用户)从数据库中删除数据并用更新的信息替换它

我遇到的问题是:

未处理SqlException:靠近“,”的语法不正确

此错误出现在第一个位置:
sqlcmd.ExecuteNonQuery()

以下是“应用编辑”按钮的完整代码:

试试这个

private void applybtn_Click(object sender, EventArgs e)
{
        Connection();
        sqlconnection.Open();

        sqlcmd = new SqlCommand("DELETE FROM inventory_table WHERE id= " + ID, sqlconnection);
        sqlcmd.ExecuteNonQuery();

        sqlcmd = new SqlCommand("UPDATE inventory_table SET Item = @Item, Quantity = @Quantity, description = @description, datasheet = @datasheet "+
            "WHERE id= " + ID, sqlconnection);
        sqlcmd.Parameters.AddWithValue("@Item", this.txtbx1.Text);
        sqlcmd.Parameters.AddWithValue("@Quantity", this.txtbx2.Text);
        sqlcmd.Parameters.AddWithValue("@description", this.txtbx3.Text);
        sqlcmd.Parameters.AddWithValue("@datasheet", this.txtbx4.Text);
        sqlcmd.ExecuteNonQuery();

        sqlconnection.Close();    
    }

不能仅从SQL Server表中删除几列—只能删除完整的行。如果要“删除”某些列,则需要使用
更新(表)SET column1=NULL
或类似的设置语法错误是由delete命令的语法不正确引起的,但您不需要删除行,因为旧值将被传递给update命令的新值替换。您只需更新即可将旧值更改为当前值。为什么需要删除?作为补充说明,您可能想看看这篇文章。还有一件事,永远不要先处理字符串,然后再执行它。始终参数化。请记住始终使用一个参数,而不是在结尾处串联这个想法,否则您将面临sql注入攻击
private void applybtn_Click(object sender, EventArgs e)
{
        Connection();
        sqlconnection.Open();

        sqlcmd = new SqlCommand("DELETE FROM inventory_table WHERE id= " + ID, sqlconnection);
        sqlcmd.ExecuteNonQuery();

        sqlcmd = new SqlCommand("UPDATE inventory_table SET Item = @Item, Quantity = @Quantity, description = @description, datasheet = @datasheet "+
            "WHERE id= " + ID, sqlconnection);
        sqlcmd.Parameters.AddWithValue("@Item", this.txtbx1.Text);
        sqlcmd.Parameters.AddWithValue("@Quantity", this.txtbx2.Text);
        sqlcmd.Parameters.AddWithValue("@description", this.txtbx3.Text);
        sqlcmd.Parameters.AddWithValue("@datasheet", this.txtbx4.Text);
        sqlcmd.ExecuteNonQuery();

        sqlconnection.Close();    
    }