Sie können nicht das erste Beispiel daran, dass Code führt zu einem Syntaxfehler auf den C# -Compiler verwenden. In der C# -Sprache müssen Sie zwei umgekehrte Schrägstriche haben, um einen einzelnen zu repräsentieren. Wenn Sie nicht über zwei Schrägstriche verwenden, die C# Parser versucht, ‚Escape‘ das folgende Zeichen (S), aber es gibt keine Escape-Sequenz für \ S und somit erhalten Sie den Fehler.
CS1009 Unrecognized escape sequence
Wenn nur als ein Beispiel, wird Ihr Server „testdb“ (klein geschrieben) dann
var sqlConnStrBuilder = new SqlConnectionStringBuilder
{
DataSource = "SQLSERVER\testdb"
};
wird die Kompilierung passieren, aber nicht die Öffnung der Verbindung, da \ t eine anerkannte schreibt genannt Escape-Sequenz und wird als TAB-Zeichen (09) behandelt.
Sie könnten dies in Aktion mit einem einfachen Code sehen, wie diese
void Main()
{
File.WriteAllText(@"d:\temp\testescapechar.txt", "SQLSERVER\testdb");
}
und dann am hexdecimal Inhalt der Datei suchen finden Sie:
0: 53 51 4C 53 45 52 56 45 52 09 65 73 74 64 62
S Q L S E R V E R ^^ e s t d b
ich, dass Sie vergessen zu erwähnen könnte die verbatim-String-Syntax verwenden, die Sie
var sqlConnStrBuilder = new SqlConnectionStringBuilder
{
DataSource = @"SQLSERVER\SQLSERVER"
};
Hier schreiben können t er Zeichen @ heben die Escape-Sequenz Muster und behandeln die Zeichen an ihrem wörtlichen Wert somit die einzige Backslash ermöglichen selbst
die zweiten darstellen, aber nicht, weil SqlConnectionStringBuilder erfordert. Es wird benötigt, da in C# ein einzelner Backslash das nächste Zeichen entkoppelt. So Ihr erstes Beispiel wird „SQLSERVER QLSERVER“. Nicht zur Arbeit gehen (wie ist eine nicht erkannte Escape-Sequenz) –
Steve
Sie konnten gebacken etwas in SqlConnectionStringBuilder Klasse müssen einzelne Escape-Zeichen in Strings zu verarbeiten ... das ist, warum ich frage. –
Ich sehe Sie Punkt, aber diese Zeichenfolge (das erste Beispiel) ist ein Syntaxfehler für den C# -Compiler, keine Möglichkeit, den Klassenkonstruktor zu erreichen – Steve