我们正在使用SQL 2005 Express进行存储。
我正在使用ODBCCommand来更新表中的某些值,但是得到以下错误。表包含所有有效列。
ERROR [42000] [Microsoft][SQL Native Client][SQL Server] Incorrect syntax near the keyword 'SET'.
所以请让我知道它有什么问题,查询在SQL浏览器中运行良好。
我的代码:
cmd = new OdbcCommand("UPDATE Transaction_Details SET SubscriptionCancelled=? WHERE SubscriptionID=?", conn);
cmd.Parameters.Add("@SubscriptionCancelled", OdbcType.VarChar, 255).Value = "Subscription Cancelled on " + DateTime.Now;
cmd.Parameters.Add("@SubscriptionID", OdbcType.VarChar, 255).Value = sSubscriptionID;
答案 0 :(得分:2)
之前我没有使用过ODBCcommand,但我猜你需要在命令语句中用单引号分隔你的字符串。
尝试更改为:
cmd = new OdbcCommand("UPDATE Transaction_Details SET SubscriptionCancelled='?' WHERE SubscriptionID='?'", conn);
答案 1 :(得分:0)
更改
UPDATE Transaction_Details SET SubscriptionCancelled=? WHERE SubscriptionID=?
到
UPDATE Transaction_Details SET SubscriptionCancelled=@SubscriptionCancelled WHERE SubscriptionID=@SubscriptionID
答案 2 :(得分:0)
鉴于SQL不知道参数的类型,因为您正在构建T-SQL语句而不是使用参数化查询,所以可能需要在字符串周围引用?
我没有机会对此进行测试,但这是一个快速建议尝试。