2012-01-25 93 views
1

我有一個數據庫,包含近10年來我收集的近2000個代碼示例,我希望能夠使用textarea字段訪問這些示例,以便我可以輕鬆地進行復制和/或更新。我試圖從PHP遷移到C#上的新域,但我有問題得到它正確顯示。從C#數據庫中顯示代碼

這是它的外觀現在:http://nunyabiz.freeiz.com/csharp/index.html

這是它應該如何看:http://nunyabiz.freeiz.com/csharp/index2.html

這是我使用,以顯示它的代碼: Code.Text = rs["Code"].ToString().Replace("\r\n", "\n");

的「 \ r \ n「字符沒有被識別,所以我猜測我必須對它進行轉換,編碼或解碼,但是我沒有嘗試找到可行的東西。線上。

+1

duplicate http://stackoverflow.com/questions/3944410/textbox-with-new-line – 2012-01-25 05:16:10

+0

難道是'rs [「Code」]'包含* literal * escape的值? (這是\,r或\,n的雙字符序列)。請記住,「\ r」和「\ n」僅適用於*字符串*:如果轉義符存儲在數據庫中,則不是。 (從DB CLI中選擇簡單的結果是什麼?) – 2012-01-25 05:27:00

+0

它們很可能是字面上的轉義值。我如何將它們轉換回字符串文字? – Realto619

回答

0

你可以嘗試Environment.NewLine爲LINEBREAKS​​

strYourCode = string.Format("Name: {0} LineBreak {1}", yournameVariable, Environment.NewLine); 
+0

我不完全確定如何使用我的代碼來實現。我剛剛嘗試過:[code] Code.Text = rs [「Code」]。ToString()。Replace(「\ r \ n」,Environment.NewLine); [/ code]沒有任何成功... – Realto619

0

揣摩什麼換行,你有你的代碼示例中 - 有許多變種,包括HTML標記BR,然後將其更改爲你所需要的(我認爲這是Environment.Newline)

,並檢查您的代碼控制是多行

+0

大部分它們是「\ r \ n」但替換函數似乎沒有捕獲它們 – Realto619

+0

它是Multiline,btw: Realto619

+0

我剛剛測試了以下內容,並且它完美地工作: String CodeToTest =」 \ r \ n「; Code.Text = CodeToTest.Replace(Environment.NewLine,「\ n」); 但是,當我嘗試在存儲在數據庫中的代碼中替換它時,它不起作用。它似乎無法識別「\ r \ n」作爲換行符。任何想法如何讓它適當地識別它們? – Realto619

0

試試這個.Replace("\r", "").Replace("\n", "<br/>");

+0

沒有。不幸的是,也沒有愛,... – Realto619