2010-10-01 12 views
1

Supposons que nous voulions sélectionner les données de la base de données puis nous écrivons la requête pour cela.Pourquoi devrions-nous écrire @ avant les requêtes sql dans asp.net?

Exemple:

SqlConnection con=new SqlConnection(Connetion name) 
string selectPkId = @"SELECT PK_ID FROM TABLE" 
SqlCommand cmd=new SqlCommand(selectPkId ,con); 

Alors, ma question est que la raison pour laquelle nous utilisons essentiellement @ avant le sql query.If Je ne l'utilise @ avant que il fonctionne à nouveau bien (ne donne pas d'erreur) , alors quel est le besoin d'utiliser "@"? S'il vous plaît dites-moi.

Répondre

6

C'est une chaîne verbatim. Cela signifie que les nouvelles lignes sont conservées et séquences d'échappement ignorées:

string a = "hello, world";     // hello, world 
string b = @"hello, world";    // hello, world 
string c = "hello \t world";    // hello  world 
string d = @"hello \t world";    // hello \t world 
string e = "Joe said \"Hello\" to me";  // Joe said "Hello" to me 
string f = @"Joe said ""Hello"" to me"; // Joe said "Hello" to me 
string g = "\\\\server\\share\\file.txt"; // \\server\share\file.txt 
string h = @"\\server\share\file.txt";  // \\server\share\file.txt 

MSDN Référence: String Literals

Cela est très pratique lorsque vous voulez échapper à des séquences à conserver sans avoir à doubler leur échapper, par exemple:

string sql = @"UPDATE table SET comment='Hello\nWorld'" 
// equivalent to: 
string sql = "UPDATE table SET comment='Hello\\nWorld'" 

Bien sûr, il s'agit d'un exemple très simple, mais la plupart du temps, il vous donnera une chaîne plus lisible.