2016-09-12 11 views
0

T-SQLに対してデータレイヤーコードを書き込む場合、しばしばSqlParameterSqlCommandに追加する必要があります。インテリセンス/コンパイラは暗黙がない」という文句であろうように、私は、三項演算子?:を使用することができないSqlCommandパラメータ、null値を追加する短い方法?

if (t.StartDate.HasValue) 
    cmd.Parameters.Add(new SqlParameter("@start_date", t.StartDate)); 
else 
    cmd.Parameters.Add(new SqlParameter("@start_date", DBNull.Value)); 

:NULL可能タイプ(例えばDateTime?)の場合には、私はこのように書きます型 'System.DateTime?'の間の変換そして、「System.DBNull」。

はコードの私の4行を書くの短い/すっきり方法はありますか?

+1

あなたはいつもあなたが使用したい共通の型をコンパイラに伝えるために、キャスト演算子を使用することができます(この場合は 'System.Object') –

+0

これを拡張メソッドにカプセル化して、必要な場所に再カプセル化してください –

+0

もっと短い方法が必要な場合は、 http://stackoverflow.com/a/39446645/284240 –

答えて

-1
cmd.Parameters.Add(new SqlParameter("@start_date", t.StartDate.HasValue?t.StartDate:DBNull.Value)); 
+1

三項演算子の2つの結果のうちの少なくとも1つを次のようなものにキャストしない限り、コンパイルは実行されません(OPには既に質問に記載されています)。 'object'。 –

+1

詳細を編集してください。コード専用と「試してください」の回答は、検索可能なコンテンツが含まれていないため、推奨されません。なぜ誰かが「これを試してみる」べき理由を説明しません。 – abarisone

関連する問題