从数据库行(C#)中删除特定数据
我试图允许(用户)从数据库中删除数据并用更新的信息替换它 我遇到的问题是: 未处理SqlException:靠近“,”的语法不正确 此错误出现在第一个位置:从数据库行(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
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();
}