如何将反斜杠更改为双反斜杠?

How to change backslash to double backslash?

我的 TSQL 查询 return 一个像这样的字符串:

a\path\to\file.xml

我想把它放在这样的字符串中:

string path = reader.GetString(0); (return the query result of the first field => "a\path\to\file.xml")

所以当我想使用 path 时,我得到了这个 :

Console.WriteLine(path); //Output : `apathtofile.xml`

但我想要这样的值:a\path\to\file.xml

我已经尝试过了,因为我认为我必须将字符串中的反斜杠加倍:

path = reader.GetString(0).Replace("\", "\\");  -> do nothing

path = reader.GetString(0).Replace(@"\", @"\\"); -> do nothing

path = Regex.Replace(reader.GetString(0), "\", "\\") -> analyse de "\" - \ non conforme à la fin du modèle 

path = Regex.Replace(reader.GetString(0), @"\", @"\\") -> analyse de "\" - \ non conforme à la fin du modèle 

法语安装 -> 法语错误信息。抱歉

您必须选择从单个反斜杠生成双反斜杠:

  1. string test = "your\string".Replace("\", "\\");
  2. string test = "your\string".Replace(@"\", @"\");

该查询是由另一位开发人员创建的,他将其写入查询:

REPLACE(SubQuery.PATH,'/','\')

我只是把它改成:

REPLACE(SubQuery.PATH,'/','\')

而且工作正常。

if i undrstand it correctly- use any split function and then use cursor to rebuild the string

--CREATE  TABLE tstr(str varchar(10))
INSERT INTO tstr
SELECT * FROM [dbo].[fnSplitString]('a\path\to\file.xml','\') AS fss
DECLARE @x varchar(20)=(SELECT TOP 1 str from tstr)
SELECT * FROM tstr
DECLARE   cur CURSOR
FOR SELECT str
FROM [dbo].[tstr] AS t
DECLARE @i varchar(10)
DECLARE @a varchar(100)=''
OPEN cur
FETCH NEXT FROM cur INTO @i

WHILE @@FETCH_STATUS=0
BEGIN
SET @a=@a+@i+'\'   
FETCH NEXT FROM cur INTO @i
END
SELECT left(@a,len(@a)-2)

CLOSE cur
DEALLOCATE cur
TRUNCATE TABLE [dbo].[tstr]