【发布时间】:2017-09-14 18:55:42
【问题描述】:
我正在尝试更新 SQL Server 表中的数据。执行查询后,我收到一条消息说数据已保存。
但是当我检查该表时,我发现数据没有保存。我的查询有什么问题吗?
我正在使用 SQL Server 2008 和 C# 进行编码。
SqlCommand cmd1 = new SqlCommand("UPDATE Inward_Rpt SET Date='" + date + "',Cashier_Name='" + cashier_name + "',Supplier_Code='" + sup_code + "',Supplier_Name='" + name + "',Payment_Mode ='" + p_method + "',Total_Bill='" + tot_bill + "',Total_Paid='" + tot_paid + "',Previous_Due = '" + total_due + "',Current_Due ='" + c_due + "',Remark ='" + remark + "'WHERE Supplier_Name='" + name + "'", con);
cmd1.ExecuteNonQuery();
MessageBox.Show("Data Saved..");
【问题讨论】:
-
SQL Injection alert - 你应该不将你的 SQL 语句连接在一起 - 使用 参数化查询 来避免 SQL 注入 - 查看Little Bobby Tables
-
您能告诉我们您用于连接 SQL Server 的 连接字符串吗?
-
尝试用
try和catch包围这段代码并放置一个断点编辑:您也可以尝试将所有cmd1字符串复制到您的数据库并检查查询是否没有错误 -
很可能,在将您的 SQL 命令连接在一起时,出现问题 - 只是 不要这样做 - 永远 - 使用 正确参数化的
UPDATE查询 代替! -
通过调试器运行你的程序。在
cmd1.ExecuteNonQuery();行上放置一个断点,然后查看即将发送到数据库的查询。如果看起来不错,则直接将其复制粘贴到 SSMS 中,然后运行它。这种方法可以更快地找到您的问题,而不是期望我们为您猜测。
标签: c# sql sql-server