2009-08-19 4 views
1

を使用している場合(つまり、偶数ワードの場合)私は汎用化しようとしている次のコード行:汎用化コマンドパラメータの作成ヌル日付

oCmd.CreateParameter("@Date", SqlDbType.DateTime, updateDate > DateTime.MinValue ? updateDate : SqlDateTime.Null); 

最初の変化は明らかにちょうどDbType.DateTimeにSqlDbType.DateTimeです、私はSqlDateTime.Nullで何をしますか?私は変更する場合

は:

oCmd.CreateParameter("@Date", DbType.DateTime, updateDate > DateTime.MinValue ? updateDate : null); 

私は素敵な小さな赤い波線のDateTimeとヌルの間には暗黙的な変換はありません私に言ってもらいます。私はこれを行う一般的な方法を見つけることができないようです - それは可能ですか?そのためupdateDateパラメータのソースとのコード行の間の非互換性の

、私はちょうどupdateDateを使用することはできません。

oCmd.CreateParameter("@Date", DbType.DateTime, updateDate); 
はかなり頻繁に、我々は、呼び出し元のコードから受け取った日には、有効な日付の外にある

SQL Serverの範囲を超えているため、コマンドが失敗します。その結果、チェックが行われなければなりません。そのため、3項チェックを含める理由があります。

私が見ることができる唯一の方法は、複数の行に分かれることですが、私は誰かが自分の袖を上げて1行にしておくことを望んでいます。事前に

乾杯

答えて

3

これを試してみてください:魔法のように

oCmd.CreateParameter("@Date", DbType.DateTime, 
    updateDate > DateTime.MinValue ? (object)updateDate : DBNull.Value); 
+0

作品を、ありがとう – BenAlabaster