推奨されるアプローチ:
void Add(int? value)
{
command.Parameters.Add("@foo").Value = value;
}
また
void Add(int? value)
{
command.Parameters.Add("@foo").Value = (object)value ?? DBNull.Value;
}
パラメータに null 値を渡したい場合はDBNull.Value
、2 番目の例のように渡す必要があります。
パラメーター値として割り当てる場合null
、パラメーターはプロシージャーに送信されず、プロシージャー呼び出しが失敗する (パラメーターが必要な場合) か、null の場合もそうでない場合もあるパラメーターのデフォルト値を使用します。 .
ご希望の機能により異なります。
値として渡すnull
と、SqlCommand はパラメーターがまったく渡されていない場合と同じように扱います。たとえば、ストアド プロシージャで必要なパラメーターである場合、クエリは失敗します。
渡すDBNull.Value
と、SqlCommand はそれを SQL null が渡されたものとして扱います。