【发布时间】: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