null可能なDateTime変数があります。そして私はそれをSQL DBに書きたいと思います。私が挿入しようとするとき:Nullable DateTime変数のnull値をDbNull.Valueに変換する方法
変数に値がある場合は問題ありません。
ただし、値が設定されていない場合は、挿入がエラーで中断されます。
私は質問したい:DbCommandパラメータを使用してnull入力可能なDateTimeをSqlに挿入するにはどうすればよいですか?
(P.S.:SQL列があまりにもNULL可能である)
DateTime? myDate = null;
DbCommand dbCommand = new DbCommand();
dbCommand.Parameters.Add("NullableSqlDateField", DbType.DateTime, myDate);
を試してみてくださいあなたは 'null'と' DBNull.Value'を同じ意味で使用できると信じています。 – Yuck
@Yuck - 私はあなたが2つを同じ意味で使うことはできないと思っています。少なくとも、すべてのデータベースプロバイダではできません。 NULL値をデータベースに挿入するときは、DBNull.Valueを使用する必要があります。 NULL対DBNull.Valueを処理する場合、セマンティクスに若干の違いがあります.Nullは無効なオブジェクト参照を参照しますが、DBNull.Valueはデータベース行の未知の値を参照します。髪の毛分裂のように見えますが、それは私が違いを見ることができる最高の推論です。 – matt
@ mjd79 'SqlDbCommand'で動作します。おそらく' DbCommand'では動作しません。 – Yuck