2

データベースからデータを選択したいとし、そのためのクエリを記述します。

例:

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

だから、私の質問は、なぜ基本的にSQLクエリの前に@を使用するのかということです。その前に@を使用しないと、再び正常に動作します(エラーは発生しません)、「@」を使用する必要があるのは何ですか?教えてください。

4

1 に答える 1

7

これは逐語的な文字列です。これは、改行が保持され、エスケープシーケンスが無視されることを意味します。

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リファレンス:文字列リテラル

これは、エスケープシーケンスを二重にエスケープせずに保持したい場合に便利です。例:

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

もちろん、これは非常に単純な例ですが、ほとんどの場合、より読みやすい文字列が得られます。

于 2010-10-01T04:54:30.750 に答える