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

时间:2015-02-11 10:20:06

标签: c# sql-server string tsql backslash

我的TSQL查询返回如下字符串:

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 

法语安装 - >法语错误消息。索里

3 个答案:

答案 0 :(得分:0)

你必须从一个反斜杠中选择一个双反斜杠:

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

答案 1 :(得分:0)

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

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

我只是将其更改为:

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

它的工作正常。

答案 2 :(得分:0)

  

如果我正确理解它 - 使用任何分割功能然后使用   游标重建字符串

--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]