Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.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
UPDATE语句中的C#-语法错误_C#_Sql - Fatal编程技术网

UPDATE语句中的C#-语法错误

UPDATE语句中的C#-语法错误,c#,sql,C#,Sql,我试图使用C#更新数据库,但得到错误:“update语句中的语法错误”。我环顾四周寻找这个错误的其他例子,发现了很多,但每一个都是不同的。很多事情都会导致这个错误,我就是不能把我的手指放在这个上面 query = String.Format(@"UPDATE PAYMENT SET MONTANT={0}, TYPE='4-Comptant',note='PPA',flag='O', date='{2:yyyyMMdd}'

我试图使用C#更新数据库,但得到错误:“update语句中的语法错误”。我环顾四周寻找这个错误的其他例子,发现了很多,但每一个都是不同的。很多事情都会导致这个错误,我就是不能把我的手指放在这个上面

query = String.Format(@"UPDATE PAYMENT 
                    SET MONTANT={0}, TYPE='4-Comptant',note='PPA',flag='O', date='{2:yyyyMMdd}'       
                    WHERE num_payment={1}", -payment, id, dt);
                    daUpdate.UpdateCommand.CommandText = query;
                    daUpdate.UpdateCommand.ExecuteNonQuery();  //update the table in the database
在调试模式下,字符串的最终外观如下:

UPDATE PAYMENT SET MONTANT=-390, TYPE='4-Comptant',note='PPA',flag='O', date='20120601' WHERE num_payment=8 调试输出看起来相同
和以前一样,只是现在我看到的是“@something”,而不是实际值。

在[TYPE]和[DATE]周围放上方括号,这是SQL关键字

query = String.Format(@"UPDATE PAYMENT  
                SET MONTANT={0}, [TYPE]='4-Comptant',note='PPA',flag='O', [date]='{2:yyyyMMdd}'        
                WHERE num_payment={1}", -payment, id, dt); 
                daUpdate.UpdateCommand.CommandText = query; 
                daUpdate.UpdateCommand.ExecuteNonQuery();  //update the table in the 

字段“note”和“flag”周围需要有[]。我添加了这些,现在查询不再给出该错误。

尝试不同的日期格式:
date='{2:yyyy-MM-dd}'
数据库,num\u payment是一个长整数和主键。蒙塔特是一个替身,其他一切都是文本,有些东西不是你想象的那样。请参阅使用参数化SQL(出于多种原因)。@agent-j:我不能,数据库就是这样,不允许我更改格式@@j探员:我不知道你说的“强”是什么意思,它显示为“文本”是MS Access。我的意思是,我的老板给了我这个数据库,它的条目已经是这种格式了。他不希望我更改格式。问题被标记为
mysql
,mysql不使用
[]
作为名称分隔符
TYPE
DATE
是(
DATE
是一个关键字,但不是保留字)。实际上,这是我的错误,它只是简单的SQL。我已经取下了标签。
query = String.Format(@"UPDATE PAYMENT  
                SET MONTANT={0}, [TYPE]='4-Comptant',note='PPA',flag='O', [date]='{2:yyyyMMdd}'        
                WHERE num_payment={1}", -payment, id, dt); 
                daUpdate.UpdateCommand.CommandText = query; 
                daUpdate.UpdateCommand.ExecuteNonQuery();  //update the table in the