【问题标题】:How to keep line breaks in SQL Server using ASP.NET and C#?如何使用 ASP.NET 和 C# 在 SQL Server 中保留换行符?
【发布时间】:2016-10-04 21:44:37
【问题描述】:

我有一个多行文本框。用户将在该文本框中提供简短的详细信息。

像这样:

我在 SQL Server 中保存并再次检索后,它显示如下截图:

我可以做些什么来保持换行符?在将数据保存到 SQL Server 之前,是否需要加密某些内容?

谢谢。

这是我的代码:

<div id="Description_id" runat="server">
</div>

C#代码:

string description = rd["job_description"].ToString();
Description_id.InnerText = description.Replace("\r\n", "<br/>");

【问题讨论】:

  • 你没有展示你如何检索/查看它。在询问是否应该这样做之前,您应该查看加密的含义,因为它在这里根本不适用。

标签: c# asp.net sql-server


【解决方案1】:

当您从&lt;textarea&gt;&lt;input&gt; 获取文本内容时,换行符将存储为换行符 - 基本上,\n 用于基于 Unix 的系统,\r\n 用于 Windows。

您需要将这些换行符转换为&lt;br /&gt; 标记,以便它们在输入中正确显示并保留换行符。例如,您可以这样做:

var outputHtml = textFromDb.Replace( "\r\n", "<br />" ).Replace( "\n", "<br />" );

这将确保替换将适用于 Unix 和 Windows 换行符。首先是 Windows 格式替换,因为 Unix 格式是它的子字符串。

或者,您也可以将数据库中的文本包装成&lt;pre&gt;,这将保留空白字符(包括换行符)。

【讨论】:

  • string description = rd["job_description"].ToString().Replace("\r\n", "&lt;br/&gt;"); Description_id.InnerText = description; 输出仍然相同。 输出 This is a beautiful world,&lt;br/&gt;&lt;br/&gt;at the same time it is not easy to survive. We should work hard.at the same time it is not easy to survive. We should work hard.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;at the same time it is not easy to survive.
  • 您需要设置Description_iddiv元素的InnerHtml属性。 InnerText 会自动转换不安全的字符,所以会在输出中将&amp;lt; 转换为&amp;lt;
  • 我明白了,哦,我的朋友,你解释每一行和每件事的方式都很棒。谢谢
  • 非常感谢,你真好 :-) !编码愉快!
【解决方案2】:

我认为您的问题不是从 SQL 服务器保存/检索数据,而是从浏览器到服务器。您能否确保您发送的文本包含所有这些换行符?使用 fiddler 或浏览器控制台检查您实际发送的内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-06
    • 1970-01-01
    • 2014-03-19
    • 2013-05-11
    • 2010-11-03
    • 1970-01-01
    相关资源
    最近更新 更多