Man nennt es einen wortwörtliches String-Wort in C#, und es ist nur eine Frage von @ vor dem Literal. Dies ermöglicht nicht nur mehrere Zeilen, sondern schaltet auch das Escaping aus. So können Sie zum Beispiel tun:
string query = @"SELECT foo, bar
FROM table
WHERE name = 'a\b'";
Dabei werden jedoch die Zeilenumbrüche (je nachdem, wie sie in Ihrer Quelle aussehen) in die Zeichenkette einbezogen. Für SQL ist das nicht nur harmlos, sondern wahrscheinlich verbessert die Lesbarkeit überall dort, wo Sie die Zeichenfolge sehen - aber an anderen Stellen kann es nicht erforderlich sein, in diesem Fall müssen Sie entweder nicht verwenden eine mehrzeilige wörtliche Zeichenfolge literal zu beginnen, oder entfernen Sie sie aus der resultierenden Zeichenfolge.
Das einzige kleine Problem ist, dass Sie ein zusätzliches Anführungszeichen hinzufügen müssen, wenn Sie ein doppeltes Anführungszeichen wünschen:
string quote = @"Jon said, ""This will work,"" - and it did!";
2 Stimmen
In Ihrem Beispiel gibt es keine Zeilenumbrüche. Möchten Sie sie?
12 Stimmen
Nein. Ich wollte nur mehrere Zeilen aus Gründen der Sichtbarkeit/Code-Sauberkeit.
10 Stimmen
In diesem Fall enthalten die wörtlichen Zeichenfolgen die Zeilenumbrüche. Sie können @"...".Replace(Environment.NewLine,"") verwenden, wenn Sie möchten.
14 Stimmen
Sie sollten sich überlegen, ob Sie die
42
als Parameter zu verwenden, vor allem, wenn er aus Benutzereingaben stammt, um SQL-Injection zu vermeiden.3 Stimmen
@weiqure: Environment.NewLine spiegelt nicht unbedingt die Zeilenumbrüche in der Zeichenkette wider, da die Zeilenumbrüche so genommen werden, wie sie im Quellcode vorkommen. Man kann also den Code auch mit unterschiedlichen Zeilenumbrüchen in jeder Zeile schreiben, die sich alle von dem unterscheiden, was Environment.NewLine auf dem Zielsystem sagt!