在SQL SERVER中是否可以在表中存储带回车符的数据,然后使用回车符再次将其检索回来。
例如:
insert into table values ('test1
test2
test3
test4');
当我检索它时,我收到一行消息
test1 test2 test3 test4
回车被视为单个字符。
有没有办法获得回车或它的存储方式?
感谢帮助人员!!!
编辑:我之前应该解释一下。我从Web开发(asp .net)获取数据,我只是将其插入表中。我可能没有做任何数据操作..只需插入。
我将数据返回到应用程序开发(C ++),可能是某些数据或报表查看器。
我不想操纵数据。
答案 0 :(得分:25)
您可以将Carriage return存储在数据库中。这里的问题是您使用SQL Server Management Studio来显示查询的结果。您可能已将其配置为在网格中显示结果。更改SSMS的配置以将结果显示到文本,您将看到回车。
在查询窗口中右键单击 - >结果 - >结果到文本
再次运行您的查询。
答案 1 :(得分:6)
INSERT INTO table values('test1' + CHAR(10) + 'test2' + CHAR(10) + 'test3' + CHAR(10) + 'test4')
这应该这样做。要查看效果,请将查询结果窗口切换为纯文本输出。
此致
答案 2 :(得分:4)
insert into table values ('test1' + chr(13) + chr(10) + 'test2' );
答案 3 :(得分:2)
您能否澄清一下如何从数据库中检索数据?你用什么工具?数据可能包含回车符,但如果您在网格中获得结果则不会显示(在文本选项中尝试结果)
答案 4 :(得分:0)
您可能需要输入“\ n”而不是文字回车。
答案 5 :(得分:0)
回车按原样存储。这里的问题是你的SQL客户端不理解它。如果您对此数据进行了原始转储,您将看到数据中存在回车符。
我在工作中使用DBArtisan,似乎工作正常。但是,isql似乎与您报告的问题相同。
答案 6 :(得分:0)
这是HTML或查询分析器中的结果吗?如果它是HTML格式的,请查看源代码,它可能看起来正确,在这种情况下,您必须使用<br />
标记替换crlf字符。
我也认为曾经有一些属性可以添加到HTML textarea以强制它以某种方式发送回车 - 软或硬?我没有看过那个,也许有人可以这样做。
但SQL Server确实在我的经验中保存了两个字符。事实上,我完全按照你在几天前使用SQL 2005所描述的那样做,每个换行符都有两个不可打印的字符。
答案 7 :(得分:0)
我正在使用SQLite存储多行texbox,并在检索存储的数据并在任何对象(txtbox,标签等)上显示时得到类似的东西。无论何时我将数据复制到NotePad /写字板或类似的东西,我都可以看到回车被存储了,它们根本没有显示在ASP页面中。
在这里找到答案:
希望有所帮助。我的代码示例:
C#:
protected void Page_Load(object sender, EventArgs e)
{
String str = Request.QueryString["idNoticia"];
this.dsNewsDetails.FilterExpression = "idNoticia=" + str;
}
ASPX:
<asp:Label ID="BodyLabel"
runat="server" style="font-size: medium"
Text='<%# Eval("body").ToString().Replace(Environment.NewLine,"<br/>") %>' Width="100%" />
注意:如提供的链接中所述,Environment.NewLine适用于C#和VB
答案 8 :(得分:0)
如果将输出切换为纯文本,则可以在不同的行中看到数据。
要切换输出,请转到Tools>Options>Query Results
并将默认目标设置为:text。
您也可以在执行查询之前尝试点击Ctrl+p
。希望它有所帮助。