3

オプションのパラメータとしてDBNull.Valueを渡すことは可能ですか?C#で試しました

private void CallSP(string param0, string param2 = DBNull.Value)
{
}

それはエラーを与えています。このメソッドでストアドプロシージャを呼び出す必要があるため、DBNull.Valueを渡します。'DBNull.Value'と'null'はSQLServerで同じように扱われますか?'DBNull.Value'の代わりに'null'を渡しますか?

4

1 に答える 1

9

DBNull.Valueは文字列ではなく、定数でもありません(オプションのパラメーター値は定数でなければなりません)。これを行う方法は、デフォルトで通常に設定し、パラメータを追加するときにをnull処理することです。null

private void CallSP(string param0, string param2 = null)
{
    ...
    object value = (object)param2 ?? DBNull.Value;
    // ^^^ use value in the parameter
    ...
}
于 2012-03-09T09:25:51.487 に答える