2012-09-28 24 views
6

Duplicar posible:
Multiline String Literal in C#¿Cuál es la sintaxis correcta en C# para crear un salto de línea en el medio de una cadena mysql?

estoy probablemente no hacer las preguntas correctas de Google para encontrar la respuesta. Solo quiero mantener mi código ordenado sin tener una cadena realmente larga en una línea. Quiero pasar a la siguiente línea sin romper la cadena.

cmd.CommandText = "UPDATE players SET firstname = CASE id WHEN 1 THEN 'Jamie' WHEN 2 THEN 'Steve' WHEN 3 THEN 'Paula' END WHERE id IN (1,2,3)"; 

Por ejemplo, me gustaría romper este en dos líneas sin afectar a la cadena. Toda ayuda será apreciada.

+0

'\ n' not it ???????? –

+0

@ColeJohnson \ n no funcionará en el archivo fuente. –

+0

¿Estás usando Visual Studio? –

Respuesta

6

sospecho que lo que desea es utilizar el @ para los literales de cadena literales; la ventaja de las cadenas verbatim es que las secuencias de escape no se procesan, y que pueden abarcar varias líneas.

cmd.CommandText = @"UPDATE players 
        SET firstname = 
         CASE id 
         WHEN 1 THEN 'Jamie' 
         WHEN 2 THEN 'Steve' 
         WHEN 3 THEN 'Paula' 
         END 
        WHERE id IN (1,2,3)"; 
+0

Esto fue perfecto. Estoy seguro de que los demás también funcionan igual de bien. Gracias a todos los que ayudaron. – webby68

1

como esto

cmd.CommandText = "UPDATE players SET firstname =" + 
    " CASE id WHEN 1 THEN 'Jamie' WHEN 2 THEN 'Steve' WHEN 3" + 
    " THEN 'Paula' END WHERE id IN (1,2,3)"; 
+0

@ funciona también, tenga en cuenta con la forma en que mostré, debe recordar espaciar al principio de la siguiente línea para evitar concatenar 2 palabras que no se supone que sean –

+0

Gracias para su ayuda. – webby68

+0

@ webby68 - es bueno recordar esto como una opción, a pesar de que no funciona tan limpiamente como el enfoque @ - si alguna vez tiene que escribir lo mismo en VB.Net, el @ antes de una cadena no está permitido –

0

Simpley concatenar las cadenas de la siguiente manera:

cmd.CommandText = "UPDATE players SET firstname = CASE id WHEN 1 " 
cmd.CommandText +="THEN 'Jamie' WHEN 2 THEN 'Steve' WHEN 3 THEN 'Paula' END WHERE id IN (1,2,3)"; 
+0

Gracias por su ayuda. – webby68

0

Se llama concatenación:

cmd.CommandText = "UPDATE players SET firstname" + 
    " = CASE id WHEN 1 THEN 'Jamie' WHEN 2 THEN 'Steve'" + 
    " WHEN 3 THEN 'Paula' END WHERE id IN (1,2,3)"; 
+0

Gracias por su ayuda. – webby68

0

gusta esta?

cmd.CommandText = "text text" + 
    "text text"; 
+0

Gracias por su ayuda. – webby68

3

Puede usar @ en la parte delantera de su cadena. Esto se llama Verbatim String Literal

cmd.CommandText = @" 
UPDATE players 
SET firstname = CASE id 
       WHEN 1 THEN 'Jamie' 
       WHEN 2 THEN 'Steve' 
       WHEN 3 THEN 'Paula' 
       END 
WHERE id IN (1,2,3)"; 
+0

Gracias por su ayuda. – webby68

3

Uso @ símbolo antes de cuerda. Le dirá al compilador que la cadena es multilínea.

cmd.CommandText = @"UPDATE players 
        SET firstname = CASE id 
         WHEN 1 THEN 'Jamie' 
         WHEN 2 THEN 'Steve' 
         WHEN 3 THEN 'Paula' 
         END WHERE id IN (1,2,3)"; 
+0

Gracias por su ayuda. – webby68

Cuestiones relacionadas