4

全部(这是回归基础!),我从 SQL Server 中提取了一串信息。字符串类似于

Hello, my name is Frank Butcher\n\n
and I work at Watford Car lot, 
and I am 65 years old.

消息将被拉入消息框以提供有关进程的信息。我使用

SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandTimeout = 0;
cmd.CommandText = strSQL;
strResult = cmd.ExecuteScalar().ToString();

这得到了字符串,但是当我把它放到我的文本框中时,显示的消息\n\n不包含所需的双换行符。

我试过使用

strResult = strResult.Replace("\n", Environment.NewLine);

在字符串上,但这无济于事。我是不是精神错乱了,我做错了什么?

谢谢你的时间。

4

1 回答 1

9

我假设您已经存储了一个文字反斜杠,然后是数据库中字符串中的字符“n”,而不是换行符。因此,您必须做String.Replace您正在做的事情。

你是如此接近,但你需要逃避你的反斜杠:

strResult = strResult.Replace("\\n", Environment.NewLine);

在不转义反斜杠的情况下,编译器将 解释\n为换行符的特殊转义序列,因此您的行相当于“用 NewLine 替换 NewLine”(您已经发现它什么都不做)。

或者,您可以在字符串常量前加上一个@符号,这意味着将其视为文字:

strResult = strResult.Replace(@"\n", Environment.NewLine);
于 2012-07-12T13:36:50.013 回答