【问题标题】:Preserve new line characters of data from TextBox to SQL Server将数据的换行符从 TextBox 保留到 SQL Server
【发布时间】:2011-07-06 15:15:22
【问题描述】:

我正在使用多行文本框,用户可以通过它输入将保存到 SQL Server 2008 数据库中的数据。还有一个进程,它从表中读取这些数据并写入文本文件。

问题: 如果用户在文本框中输入的数据包含键盘<Enter>,则它正在保存到数据库中,其中一些空格替换了<Enter>

如果我将相同的数据读取到网页上的文本框,它会正确显示。

但是,如果我的第二个进程从数据库中读取数据并打印到文本文件,则它不能正确地保持文本格式。它不会在打印到文本文件的数据中保留<Enter>

谁能帮助我如何在生成的文本文件中保留<Enter>

【问题讨论】:

  • 您需要向我们展示生成文本文件的代码。
  • 您还应该注意,SSMS 通常不会在 select 语句的输出中显示换行符,因此看起来它们已被数据库中的空格替换。但是,如果您将文本加载到变量中,然后将其传递给 PRINT,您将看到它们仍然存在。

标签: c# asp.net sql-server sql-server-2008


【解决方案1】:

听起来您的<Enter> 被保留在数据库中,因为当您再次输出到文本框时它可以正常工作。

我的猜测是,问题要么是在将它们写入文本文件的过程中去除了 CR 和 LF 字符,要么是你的文本阅读器没有识别它们。

如果您在 Notepad++ 中打开文本文件,然后转到查看 --> 显示符号并确保选中“显示行尾”,您应该能够查看行尾是否有 CR 和 LF 字符写入文本文件时会保留。

【讨论】:

  • 我支持这个。当输出为网页上的文本时,我遇到了让用户输入正确显示的相关问题。您必须解析存储的字符串并用

    ...

    标记替换换行符以保留输入的格式。但是,如果您将字符串重新加载到文本框中,您会看到它呈现为最初输入的样子,即换行符仍然存在。
  • @Rozwel 如果将文本换行在<pre></pre> 中,则会显示换行符。
  • 是的。我正在考虑我构建数据驱动页面的地方,具有正确权限的用户可以编辑内容。在这些情况下,我不得不担心的不仅仅是换行符,因此其他标签可以更好地工作。如果只是用输入的间距显示纯文本,那么 pre 标签应该可以正常工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-16
相关资源
最近更新 更多