【问题标题】:Convert linebreaks from multiline textbox value stored in MS SQL Server to HTML将存储在 MS SQL Server 中的多行文本框值的换行符转换为 HTML
【发布时间】:2015-09-17 21:15:22
【问题描述】:

好的,我将 SQL Server 中多行文本框的值存储在 nvarchar(1000) 类型的列 [txt] 中。

本例中的多行文本为:

尊敬的先生,

欢迎来到我们的平台。

最好的,我们

将结果保存到 MSSQL 后,我运行查询来选择值。 当我直接从 SQL Server Management Studio 的查询结果中复制列 [txt] 的值并将其粘贴到 Notepad++ 中时,我再次看到了原始文本。 此外,从数据库中再次加载文本并将其分配给多行文本框也可以正常工作。

但是,当我在后面的代码中将数据库列 [txt] 的值分配给字符串变量时(所以不是从文本框到变量):

Dim mailContent as String = row.txt

然后在电子邮件中发送这个值,电子邮件收件人看到的文本没有换行符,所以:

尊敬的先生,欢迎来到我们的平台。最好的,我们

我尝试了以下所有不同的场景:

Dim registryTA As New registryTableAdapters.registryTableAdapter
Dim registryDT As registry.registryDataTable = registryTA.GetDataByUserid(_userid)
Dim mailcontent As String

mailcontent = registryDT(0).invitetext.Replace(vbLf, "<br/>").Replace(vbCrLf, "<br/>")

mailContent = mailContent.Replace(Environment.NewLine, "<br/>")
mailContent = mailContent.Replace("\r\n", "<br/>")
mailContent = Server.HTMLEncode(mailContent)
mailContent = Server.HTMLDecode(mailContent)
mailContent = mailContent.Replace(vbCrlf, "<br/>")

最好我不想改变我在 MSSQL 中/从 MSSQL 中存储或检索数据的方式(如 here),那么如何将 [txt] 的当前值转换为 HTML 格式并获取换行符?

【问题讨论】:

  • 请说明您如何检索row 您如何初始化mailContent
  • @CodeCaster 我添加了一些额外的代码来证明这一点。希望有帮助!

标签: html asp.net sql-server vb.net line-breaks


【解决方案1】:

在 SQL 选择查询中替换换行符

 REPLACE(Account.AcAddress,CHAR(10),'<br/>')

【讨论】:

    【解决方案2】:

    您的内容中似乎只有\n。尝试用&lt;/br&gt; 替换\n。试试这个,

    mailContent = mailContent.Replace(vbLF, "<br/>").Replace(vbCrlf, "<br/>")
    

    【讨论】:

      猜你喜欢
      • 2013-12-30
      • 1970-01-01
      • 2013-12-18
      • 1970-01-01
      • 2021-01-30
      • 1970-01-01
      • 1970-01-01
      • 2020-04-30
      • 1970-01-01
      相关资源
      最近更新 更多