2011-11-26 215 views
0

我需要將\符號添加到字符串中。格式化字符串「」

我無法找到這樣做的方式,因爲

@"\" == "\\" 

\不正確的說法。

編輯

其實我想產生含有'字符SQL查詢字符串。爲了讓SQL正確讀取,我應該像\'那樣表示它。所以,我的代碼是這樣的:

string query = "SELECT somequery"; 
query += "\\'"; 

但是,當SQL嘗試執行這個查詢它認爲查詢只包含\ \\'

+2

雙方都是由一個反斜槓的字符串。 – CodesInChaos

+0

目前還不清楚你想在SQL中實現什麼。你能給我們一個結果SQL字符串的例子嗎?你的例子的結果是''SELECT somequery \''' –

回答

1

你試圖逃避撇號(')在SQL字符串文字?將其替換爲兩個撇號('')。反斜槓適用於C#,而不適用於SQL。

"WHERE text = 'don''t'" 

編輯

可能是你正在尋找:

query = "SELECT * FROM tbl WHERE text = '" + input.Replace("'","''") + "'"; 

但認爲在這種情況下使用,而不是使用字符串操作SQL參數。


反斜線需要SQL無法迴避:

SELECT * FROM tbl WHERE text = '\' 
+0

非常感謝,它有幫助 – HelloWorld

2

目前還不清楚你正在嘗試做什麼,因爲"\\"@"\"確實是這樣做的正確方法(選擇你的毒藥)。

0

你需要逃避你的性格:

string str = "\\";    //gives \ if you use it in a label 

Click here字符列表中的字符串逃脫

你能後你需要什麼,如果這還不夠充分的例子嗎?

+0

更新的第一篇文章 – HelloWorld

1

澄清其他答案。嘗試將值設置爲字符串時,需要使用常用字符。 ASCII圖表中的某些其他字符不能直接鍵入,例如製表鍵,輸入,換行符等等。這樣的字符列表provided here (same as provided by Gabriel)需要這樣逃脫。如果你不打算使用特殊的轉義字符,你可以通過引導字符串「@」來避開「轉義」的需要,這意味着我正是在這裏得到的......

例如:

string MyString = @"C:\SomePath\Anything\else\File.txt"; 

相同

string MyString = "C:\\SomePath\\Anything\\else\\File.txt"; 

如果你不使用領先的「@」,第一次遇到「\」表示下一個字符是關鍵代表你想要什麼?在「\」的情況下,第一個打開「轉義」機制,第二個是你實際的角色NT。

類的東西回車鍵和換行,你會經常看到這些作爲

string MyMsg = "This is a sample \r\nMessage that\r\nwill span 3 lines."; 
and appear as 
This is a sample 
Message that 
will span 3 lines. 

,你甚至可以建立使用不同類型的字符串,如

string MyTest = @"C:\SomePath\" + AnySubPathVariable + "\\NewFile.txt"; 

因此,如果「AnySubPathVariable等於「測試」,結果字符串將變成

C:\SomePath\testing\newfile.txt 

希望這grea tly澄清你正在嘗試做什麼。