いつParameters. Add/AddWithValue
を使用すべきですか?次のMSDNの例では、int
にはParameters.Add
を使用し、string
にはParameters.AddWithValue
を使用します
command.Parameters.Add("@ID", SqlDbType.Int);
command.Parameters["@ID"].Value = customerID;
command.Parameters.AddWithValue("@demographics", demoXml);
datetime
に最適なものは何ですか
少し手間をかけてすべてを明示的にしたい場合は、Add
を使用します。怠けている場合はAddWithValue
を使用します。 AddWithValue
はその値のパラメーターの型を導出するため、正しい型であることを確認してください。たとえば、string
がint
に正しい型である場合、解析する必要があります。
Add
を避ける理由が1つあります。パラメーターの型がint
の場合、 パラメーター名とオブジェクトを受け取るオーバーロード 以降に注意する必要があります- 別のオーバーロードはSqlDbType
- enumで選択されます 。
備考 から(メソッドのオーバーロードはobsolete
になりました):
この_
SqlParameterCollection.Add
_メソッドのオーバーロードを使用して整数パラメーター値を指定する場合は注意してください。このオーバーロードはObject型の値をとるので、値がゼロのときに整数値をObject型に変換する必要があります...この変換を実行しない場合、コンパイラはSqlParameterCollection.Add(string, SqlDbType)
オーバーロード。