Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
错误[42000][Microsoft][SQL Native Client][SQL Server]关键字';附近的语法不正确;设置';_Sql_Sql Server - Fatal编程技术网

错误[42000][Microsoft][SQL Native Client][SQL Server]关键字';附近的语法不正确;设置';

错误[42000][Microsoft][SQL Native Client][SQL Server]关键字';附近的语法不正确;设置';,sql,sql-server,Sql,Sql Server,我们正在使用SQL 2005 Express进行存储 我正在使用ODBCCommand更新表中的一些值,但出现以下错误。表包含所有有效列 ERROR [42000] [Microsoft][SQL Native Client][SQL Server] Incorrect syntax near the keyword 'SET'. 我以前没有使用过ODBCcommand,但我猜您需要在command语句中用单引号分隔字符串 尝试更改为: cmd = new OdbcCommand("UPDATE

我们正在使用SQL 2005 Express进行存储

我正在使用ODBCCommand更新表中的一些值,但出现以下错误。表包含所有有效列

ERROR [42000] [Microsoft][SQL Native Client][SQL Server] Incorrect syntax near the keyword 'SET'.
我以前没有使用过ODBCcommand,但我猜您需要在command语句中用单引号分隔字符串

尝试更改为:

cmd = new OdbcCommand("UPDATE Transaction_Details SET SubscriptionCancelled='?' WHERE SubscriptionID='?'", conn);
改变

UPDATE Transaction_Details SET SubscriptionCancelled=? WHERE SubscriptionID=?


如果SQL不知道参数的类型,因为您是在构建t-SQL语句而不是使用参数化查询,那么字符串周围可能需要引号


我还没有机会对此进行测试,但这是一个快速尝试的建议。

您的ODBCCommand对象的CommandType是什么?为什么使用ODBCCommand而不是SqlCommand?我想指出,我似乎没有必要将“Subscription Cancelled on”作为SubscriptionCanceled列中存储的数据的一部分。如果该列已经被称为SubscriptionCancelled(该名称中已经有了含义),我会将其设为datetime列并只存储日期;否则,您将来将很难查询该表中取消订阅的日期。只是一个建议。@mitch-我取消了删除以便他可以测试,但我不确定。我检查了msdn信息,在一个样本中,我发现它们没有划界。然而,它们也没有连接string@JNK: :(我认为你是对的。似乎不需要装饰…这是我最初的想法,但你不需要。它以参数“?”顺序替换…顺便说一句:伙计们,如果你使用SSMS,并且没有下载Mladen Prajdic的SSMS工具包,我强烈建议你这样做。这非常非常有用…我非常确定这是正确的答案,因为您试图更新的列是一个varchar,在正常的T-SQL中,它需要用单引号引起来。
UPDATE Transaction_Details SET SubscriptionCancelled=? WHERE SubscriptionID=?
UPDATE Transaction_Details SET SubscriptionCancelled=@SubscriptionCancelled WHERE SubscriptionID=@SubscriptionID