将换行符从存储在MS SQL Server中的多行文本框值转换为HTML

时间:2015-06-30 21:43:13

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

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

本案例中的多行文字是:

  

亲爱的先生,

     

欢迎来到我们的平台。

     

最好,我们

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

但是,在我的代码后面我将数据库列[txt]的值分配给字符串变量(因此不是从Textbox到变量):

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中存储或检索数据的方式(如here),那么如何将[txt]的当前值转换为HTML格式和得到换行符?

2 个答案:

答案 0 :(得分:2)

好像文字可能只在您的内容中有\n。尝试将\n替换为</br>。试试这个,

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

答案 1 :(得分:0)

替换SQL select query中的换行符

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