2009-10-05 181 views
0

我想这个问题很容易回答,但我似乎无法弄清楚。Sql Server:存储文本并保留换行符?

我试图将文本(电子邮件正文)存储到nvarchar(max)列中,但是当我阅读它时,换行符都没有了。起初我认为这可能是一些编码/整理问题,但似乎并非如此。

我周围搜索,并没有看到有关这种行为的问题,所以我一定在做一些非常愚蠢的事情,但我无法弄清楚。

我设法保留文本格式的唯一方法是将其转换为byte []并将其存储在varbinary列中,但后来我失去了所有搜索功能!

编辑:哦,我忘了提及我正在使用c#和sqlserver2005。

+0

所以你你做了一些愚蠢的事情,没有发布'愚蠢'的代码,然后邀请我们弄清楚*你做了什么愚蠢的事情。 – 2009-10-05 05:32:51

+1

你可以发布一些代码来证明这个问题吗?以前没见过那个。此外,是换行符*走了*还是换成空格? – richardtallent 2009-10-05 05:33:11

+0

@Remus - 如果你只有一个问题形式的提示(尽管标点符号 - 我找到了一个问号但没有找到),也许你最好什么都不要说。 – 2009-10-05 05:40:09

回答

0

您可以发布您用于存储和检索的代码吗?如果你使用的是@参数,它应该“只是工作”,所以“奇怪”肯定会发生:-)

4

SQL Server在插入或选择时不会删除“新行”。事实上,没有字符被删除(除了排序依赖等)

当你阅读SSMS网格视图(如右键单击,打开表格),那么他们将不会被看到。

您也可能在查询窗格中看不到它们,因为文本被截断(结果为文本模式),或者您处于网格模式的结果中。

你怎么知道CRs/LFs被删除?