SqlParameter の parameterName についてなのですが、
SqlConnection cn = new SqlConnection(@"XXXXX");
cn.Open();
SqlCommand cmd = cn.CreateCommand();
cmd.CommandText = "SELECT * FROM TABLENAME WHERE FIELD1 = @FIELD1";
cmd.CommandType = CommandType.Text;
SqlParameter parameter = new SqlParameter("@FIELD1", "123"); // (A)
//SqlParameter parameter = new SqlParameter("FIELD1", "123"); // (B)
cmd.Parameters.Add(parameter);
SqlDataReader rd = cmd.ExecuteReader();
rd.Close();
上記ソースの様に、SqlParameter を(A)、(B) の2パターン試してみても、
どちらも、正常に思った通りの結果が返ってきます。
これって、気を利かせて誰かが自動的に「@」を付けてくれるから、正常に動作しているんでしょうか?
本来は、(A)、(B)、どちらでSqlParameterを作るのが正道なのでしょうか?
ちなみに、.NET Framework が気を利かせて「@」を付加してくれてるんでしょうか?
環境:
Windows Vista Ultimate
Visual Studio 2005 Professional Edition SP1
.NET Framework 2.0