0

すべてが機能しますが、これは正しい実践/正しいアプローチ/何が理にかなっているのかを知るためだけのものです

私がコードを持っているとしましょう:

string query = "SELECT * FROM table WHERE parent_id=@parentId and id = @id";
OleDbCommand c = new OleDbCommand(query, _con);

そして、残りの部分について、次のうち正しいものはどれですか?:

c.Parameters.AddWithValue("@parentId", 1);
c.Parameters.AddWithValue("@id", 2);

また

c.Parameters.AddWithValue("parentId", 1);
c.Parameters.AddWithValue("id", 2);

また

c.Parameters.AddWithValue(@"parentId", 1);
c.Parameters.AddWithValue(@"id", 2);

(私はそれが3番目ではないことを知っています)2番目は私に正しい方法に見えます。これはすべて、パラメータ化されたパラメータがSQLによってコードから実際にどのように解釈されるかに依存します。何かご意見は?私は特に、コーディングの悪い習慣を笑う知識のある人が好きではないので、ここにいる可能性がある場合は質問しています:)

更新:私が知るように、msdnでさえここでの規則に従わず、1番目と2番目の両方が使用されます。私はそれを明確にする1番目に固執するつもりです。ありがとう

4

1 に答える 1

5

すべてが機能します。2番目と3番目は、パラメーターの名前が正しい限り同じです(ここでは、c#コンパイラーの動作にのみ影響します)が、パラメーターシンボルがない接続も含め、どの接続でも機能する@ため、おそらく2番目と3番目の方が適しています。ただし、もクエリに含まれているため、これはおそらく弱い違いです。@@

于 2012-05-06T20:51:43.427 に答える