【发布时间】:2015-03-31 21:27:09
【问题描述】:
我正在尝试允许(用户)从数据库中删除数据并将其替换为更新的信息。
我遇到的问题是这样的:
SqlException 未处理:',' 附近的语法不正确。
而且最开始出现这个错误:sqlcmd.ExecuteNonQuery()
这是“应用编辑”按钮的完整代码:
private void applybtn_Click(object sender, EventArgs e)
{
Connection();
sqlconnection.Open();
sqlcmd = new SqlCommand("DELETE Item, Quantity, description, datasheet 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 表中的几列 - 您只能删除 完整的行。如果您想“删除”某些列 - 您需要使用
UPDATE (table) SET column1 = NULL或类似的东西 -
语法错误是由delete命令的语法错误引起的,但您不需要删除该行,因为旧值被传递给更新命令的新值替换
-
您只需要更新即可将旧值更改为当前值。为什么需要删除?
-
作为旁注,您可能想看看这篇文章。 blogs.msmvps.com/jcoehoorn/blog/2014/05/12/…
-
另一件事,永远不要连接字符串然后执行它。始终参数化。
标签: c# sql-server database winforms