2010-08-16 132 views
0

我有一個常量字符串如下圖所示C#字符串問題

const String GetSQL = @"select 
      id 
     from 
      emp 

     "; 

當我嘗試用同樣的方法爲GetSQL值與換行符 即選擇\ r \ N ID \ r \ n等

我怎樣才能得到它在同一行沒有那些符

感謝

+0

的[替換換行符的字符串C#](http://stackoverflow.com/questions/238002/replace-line-breaks-in-a-string-c) – kemiller2002 2010-08-16 18:11:49

+0

爲什麼你想要做可能重複以這種格式宣佈聲明?爲什麼你不想在最終結果中換行?讓我們知道你在這裏做什麼。 – bdukes 2010-08-16 18:42:48

回答

0

編程方式刪除的休息。

0

你不能將它聲明爲:

const String GetSQL = "select id from emp"; 

5

有沒有理由不使用:SELECT id FROM emp所有在一條線上?

+0

要了解答案,必須知道要問的正確問題。 或者在這種情況下,請將它留給SO,以便爲您解決您的REAL問題。 +1。 – xdumaine 2010-08-16 18:16:40

1

您有幾種選擇:

  1. 擺脫換行符,並格式化SQL成一條線。這適用於簡單的SQL查詢,但如果SQL很大且很複雜,會變得很麻煩。
  2. 使用string.Replace("\n"," ")以編程方式刪除中斷。這可以很好地工作,但可能很脆弱 - 特別是如果稍後將單行語句重寫爲多行語句。
  3. 不要將字符串直接放在代碼中,而是從資源或文件中讀取它。這可以讓你更好地組織你的SQL查詢,但你可能仍然需要刪除不需要的中斷(使用上面的替換)。
  4. 使用存儲過程避免將SQL直接嵌入到代碼中以開始。這是一個最佳實踐,但它可能需要對代碼進行更重大的更改,並不總是可能的(例如,部門策略可能會禁止它)。
0
"Your String".Replace("\r", "").Replace("\n", "") 

或只是

"Your String".Replace(Environment.Newline, "replacement text") 
1

只是聲明它不換行。您仍然可以使用串聯將它放在不同的行上。

const string sql = "SELECT" 
       + "  id" 
       + " FROM" 
       + "  emp";