2010-08-16 86 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";