2017-06-12 8 views
3

質問のタイトルはかなり質問そのものです、なぜ私はそのようなSQLパラメータ名の前に毎回 "@"を書く必要があるのですか?SqlParametersCollectionが毎回パラメータ名の先頭に "@"を必要とするのはなぜですか?

command.Parameters.AddWithValue("@CustomerID", this.CustomerId); 

これはパラメータがSQLを使って宣言される方法ですが、それは常にフレームワークによって処理されるべきではありません。

+2

データベース固有のもの –

+0

データベース固有の意味は何ですか? – kuskmen

+0

@kuskmenすべてのデータベースにはパラメータを指定する独自の方法があります。 SQL Serverでは '@'、Oracleでは ':'です。 –

答えて

1

Microsoft SQL Serverを使用していると仮定します。 MS SQLはこのように変数の名前を指定します。したがって、このように呼び出す必要があります。

+0

そうですが、 'SqlParameterCollection'を使って他のSQL Serverと違ったものを使うことができますか?私は、すべてのSQLサーバのすべてのパラメータが同じと宣言されていると思いますか? – kuskmen

+0

はい、そうです。しかし、@は単にSQLサーバーが変数を指定する方法です。また、テーブルを宣言するために使用することができます(変数です) –

+0

私は間違っていて、フレームワークは内部的にそれらを処理しています、私の質問の下にコメントを確認します。 – kuskmen

1

MS SQL Serverの変数名は、アットマーク(@)で始まる必要があります。詳細については、declare variables in SQLの方法を確認してください。

+0

これは本当ですが、どうして私は自分自身で.NETでそれをやらなければならないのか不思議でした。なぜなら、フレームワークではなく、なぜ自分自身がそうであるのか、私は間違っていると分かりました。 – kuskmen

関連する問題