以下查询抛出错误。 PLZ帮助我&告诉我这是什么错误。
此查询在结果后退缩:
string sqlcmd = "UPDATE branch SET brac_subj = " + query_data + " WHERE (braid = "+dd_branch+")";
UPDATE branch SET brac_subj = "'11' , '12' , '13' , '14' , '15' , '16' , '17' , '18' , '19' , '20' , '21'" WHERE (braid = 1)
如何以下列格式存储字符串:
'11' , '12' , '13' , '14' , '15' , '16' , '17' , '18' , '19' , '20' , '21'
答案 0 :(得分:2)
您在Enigma中遇到的问题称为Escaping。由于单引号是受限制的字符,并且在SQL中定义字符串的开头,因此不能在同一字符串中使用它。
除此之外,看起来您的印象是SQL Server使用双引号来定义字符串,但事实并非如此。
此语法不起作用:
UPDATE branch SET brac_subj = "'11' , '12' , '13'"
此语法将起作用:
UPDATE branch SET brac_subj = '''11'' , ''12'' , ''13'''
诀窍在于使用您的编程代码在值周围添加额外的撇号,从而得到其他人建议的答案。
此外,测试此语法的简便方法是一个简短的select语句:
SELECT "'11' , '12' , '13'"
VS
SELECT '''11'' , ''12'' , ''13'''
答案 1 :(得分:1)
如果你想把它作为一个字符串。这应该有效:
query_data="'"+query_data.Replace("'","''")+"'";
如果你想要它们"11 , 12 , 13 , 14 , 15 , 16 , 17 , 18 , 19 , 20 , 21"
。然后这样做:
query_data="'"+query_data.Replace("'","")+"'";
答案 2 :(得分:0)
用两个替换每个撇号,它应该工作 如果你想要“duncan o'toole”你在sql查询中使用'duncan o''toole'
答案 3 :(得分:0)
如果这是您要插入的数据类型,即没有单引号
,请尝试此操作UPDATE branch SET brac_subj = '11,12,13' WHERE (braid = 1)
如果您想插入单引号,也可以用双引号替换单引号
UPDATE branch SET brac_subj = '"11","12","13"' WHERE (braid = 1)
答案 4 :(得分:0)
最简单的方法是使用:
SET QUOTED_IDENTIFIER OFF
UPDATE分支SET brac_subj =“'11','12','13'”
当SET QUOTED_IDENTIFIER为ON时,标识符可以用双引号分隔,文字必须用单引号分隔。当SET QUOTED_IDENTIFIER为OFF时,不能引用标识符,并且必须遵循标识符的所有Transact-SQL规则。有关详细信息,请参阅Database Identifiers。