2014-09-25 38 views
-1

我正在用.edmx爲數據庫連接創建一個小型應用程序。將數據庫字符串值與 r n放入wpf文本框中

我的數據庫裏面我創建了例如值的字符串:

this is:\r\nA new line 

,當我把這個值(在調試),我看到值改爲

this is:\\r\\nA new line 

導致WPF文本顯示

this is:\r\nA new line 

,而不是

this is: 
A new line 

有什麼想法,我在做什麼錯在這裏?

編輯:

Windows 8.1 
VS2013 Express 
SQL Server Express (LocalDb) 

的值通過一個T-SQL命令存儲在數據庫中。 (我仍然在項目啓動)

Insert into Atable 
(ID, value) 
VALUES 
(1, 'this is:\r\nA new line') 
+0

你在做什麼操作系統? – ZoomVirus 2014-09-25 13:50:25

+2

你是如何將該字符串輸入數據庫的?我猜測你使用的任何工具都不會將'\ r \ n'序列作爲回車+換行符,而是作爲文字序列「斜槓,r,斜槓,n」讀取,在這種情況下輸出是正確的。因此,要麼正確地存儲字符串,要麼在C#端手動處理轉義序列。 – 2014-09-25 13:52:34

+0

windows將從數據庫中讀取一個字符,因此當它讀取它時,它會看到\並自動將其更改爲\\,因此您需要的是檢查\\ r \\ n並更改它的函數到system.enviroment.newline。 – ZoomVirus 2014-09-25 13:52:45

回答

3

因爲在sql \r並不意味着什麼特別的。在c#中,\r與ascii字符#10相同,不可打印。你試圖做的是一個「轉義序列」,它只存在於c#中。

如果您在c#中創建轉義字符並將其保存到sql中,它將會回讀得很好。但是,如果你在sql中輸入轉義字符,它不會是你所期望的。

所以,在SQL查詢中,你可以這樣做:

select 'this is:' + CHAR(13) + CHAR(10) + 'A new line' -- same as "\n\r" in c# 

在C#中,這將是

string message = "this is\r\nAnew line" 

或者,更好,使用內置的

string message = "this is" + Environment.NewLine + "A new line"; 
+0

一個儘快 – Schuere 2014-09-25 13:59:31

+0

解決它,tyvm :) – Schuere 2014-09-25 15:42:02

相關問題