格式化字符串“\”

时间:2011-11-26 15:33:41

标签: c# string formatting

我需要在字符串中添加\符号。

我找不到这样做的方法,因为

@"\" == "\\"

\不是正确的陈述。

修改

实际上我正在尝试生成包含'字符的SQL查询字符串。为了使SQL正确读取,我应该像\'那样表示它。所以,我的代码是这样的:

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

但是当SQL尝试执行此查询时,它认为查询包含\ \\'

4 个答案:

答案 0 :(得分:2)

目前还不清楚你要做什么,因为"\\"@"\"确实是这样做的正确方法(选择你的毒药)。

答案 1 :(得分:1)

澄清其他答案。尝试将值设置为字符串时,需要使用常用字符。 ASCII图表中的某些其他内容无法直接输入,例如Tab键,输入,换行等等。 provided here (same as provided by Gabriel)这样的字符列表需要如此转义。如果你不打算使用特殊的转义字符,你可以通过用“@”引导字符串来绕过“逃避”它们的需要,这意味着把它放在我这里所拥有的......

例如:

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

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

如果你不使用前导“@”,第一次遇到“\”表示下一个字符是表示你想要的字符的键...在“\”的情况下,第一个打开“逃避”机制,第二个是你想要的实际角色。

对于Enter键和换行等内容,您通常会将其视为

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

希望这能大大澄清你想要做的事情。

答案 2 :(得分:1)

您是否尝试在SQL字符串文字中转义撇号(')?用两个撇号('')替换它。反斜杠适用于C#,而不适用于SQL。

"WHERE text = 'don''t'"

修改

可能您正在寻找:

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

但是在这种情况下考虑使用SQL参数,而不是使用字符串操作。


反斜杠不需要在SQL中转义:

SELECT * FROM tbl WHERE text = '\'

答案 3 :(得分:0)

你需要逃脱你的角色:

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

Click here表示要在字符串

中转义的字符列表

如果这还不够,你能发布你需要的完整例子吗?