SQL server-插入包含反斜杠的字符串记录
本文关键字:字符串 记录 server- 插入 包含反 SQL | 更新日期: 2024-09-24 15:41:28
我正试图在表中插入一条记录,其中一列具有以下值。
''''a''b''c
Database DataProvider = new SqlDatabase(connectionstring);
DataProvider.ExecuteNonQuery("sprocname",
Id,
qText,
);
这里,qText
具有以上值。执行后,该值仅作为'
(单个反斜杠)添加到表中。
如果我尝试手动在表中插入记录,
INSERT INTO mytbl(id, q) VALUES
(0, '''''a''b''c')
插入正确的值。发生这种情况的原因是什么?我是不是遗漏了什么?
更新
似乎无论我的字符串是什么,只有它的第一个字母被插入该列!不知道为什么。该列的数据类型为varchar(max)
Ex。
for qText = 'abc', then column has value `a`
for qText = '''''a''b''c', then column has value `'`
Backslash是转义序列字符,因此两个反斜杠将被解释为一个反斜杠。如果你想在这种情况下保持反斜杠的原样,请使用逐字逐句的字符串文字,在字符串文字的开头添加@。
var qText = @"''''a''b''c";
在字符串变量中存储'
时,需要将其添加为转义序列"''"
所以,如果我们写
String qText = "''"
qText
的值将是'
因此,要存储''''a''b''c
,应指定两倍的'
。
String qText = "''''''''a''''b''''c"
这样使用时,qText的值将为''''a''b''c
问题出现在存储过程中。该过程的输入参数为varchar
,但未指定长度。