我的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
法语安装 - >法语错误消息。索里
答案 0 :(得分:0)
你必须从一个反斜杠中选择一个双反斜杠:
string test = "your\\string".Replace("\\", "\\\\");
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]