2008-09-26 24 views
9

在SQL SERVER中是否可以將帶回車符的數據存儲在表中,然後再用回​​車將其重新取回。帶回車符的表中的數據?

如:

insert into table values ('test1 

test2 

test3 

test4'); 

當我找回它,我在一條線上

TEST1 TEST2 TEST3 TEST4

回車被視爲單個字符得到的消息。

有沒有辦法讓回車或者其原來的樣子了將被存儲在哪裏?

感謝您的幫助!

編輯:我應該先解釋一下。我從網絡開發(asp .net)獲取數據,然後將其插入表中。我可能沒有做任何數據操作..只需插入。

我的數據返回給應用程序開發(C++),並且可以是一些數據或報告查看器。

我不想操縱數據。

回答

1

您能否澄清一下您如何從數據庫中檢索數據?你使用什麼工具?該數據可能包含了回車,但如果你在電網您可能需要放在一個「\ n」,而不是字面回車結果(嘗試在文本選項的結果)

25

您可以在數據庫中存儲回車。這裏的問題是您正在使用SQL Server Management Studio顯示查詢結果。您可能已將其配置爲在網格中顯示結果。更改SSMS的配置以將結果顯示爲文本,您將看到回車符。在查詢窗口

右鍵 - >結果爲 - >結果爲文本

再次運行查詢。

+0

這完全正確。 ;)我測試之前,我發佈和馬斯特羅斯打敗我來驗證它。 – theo 2008-09-26 14:05:34

0

回車按原樣存儲。這裏的問題是你的sql客戶端不理解它。如果你做了這個數據的原始轉儲,你會看到數據中有回車符。

我在工作中使用DBArtisan,它似乎工作正常。但是,isql似乎與您報告的問題相同。

4

IIRC,使用CHR(13)+ CHR(10)應的作品。

insert into table values ('test1' + chr(13) + chr(10) + 'test2'); 
+0

嚴格說來,chr(13)是回車,但是chr(10)不是。它是換行。 – Constantin 2008-09-26 21:26:46

0

這是結果在您的HTML或查詢分析器?如果是HTML格式,請查看源代碼,它可能在那裏顯示正確,在這種情況下,您必須用<br />標記替換crlf字符。

我也在想,過去有,你可以添加到HTML的textarea,迫使它發送回車在某些方面的屬性 - 軟或硬?我沒有看過,也許有人可以做到這一點。

但SQL Server確實保存了我的經驗中的兩個字符。事實上,我完全按照前幾天使用SQL 2005所描述的那樣進行,每個換行符都有兩個不可打印的字符。

6
INSERT INTO table values('test1' + CHAR(10) + 'test2' + CHAR(10) + 'test3' + CHAR(10) + 'test4') 

這應該做到這一點。要查看效果,請將查詢結果窗口切換爲純文本輸出。

問候

0

我使用SQLite存儲多texbox並得到了類似的東西檢索存儲的數據時,並顯示任何物體上(txtboxes,標籤等)。每當我將數據複製到記事本/寫字板或類似文件中時,我都能看到回車被存儲起來,它們只是不顯示在ASP頁面中。

在這裏找到了答案:

http://www.mikesdotnetting.com/Article/20/How-to-retain-carriage-returns-or-line-breaks-in-an-ASP.NET-web-page

希望幫助。

我的代碼示例:

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

0

如果將輸出切換爲純文本,則可以在不同的行中看到數據。 要切換輸出,請轉至Tools>Options>Query Results並將默認目標設置爲:text。 在執行查詢之前,您也可以嘗試擊打Ctrl+p。希望能幫助到你。