2009-08-19 37 views
1

我想泛化(如果这是一个连字)的下面一行代码时泛化命令参数创建,我该如何处理SqlDateTime.Null?使用空日期

如果我更改为:

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

我得到了很好的小红色波浪告诉我有日期时间和零之间的隐式转换。我似乎无法找到这样做的通用方法 - 是否有可能?

因为updateDate参数的来源,这行代码之间的不兼容的,我不能只用updateDate:

oCmd.CreateParameter("@Date", DbType.DateTime, updateDate); 

很多时候我们从调用代码收到日期超出有效日期SQL Server的范围,并导致命令失败。因此必须进行检查 - 因此包含三元检查的原因。

我可以看到做到这一点的唯一方法是打破多行,但我希望有人有一个招数,所以我可以保持它作为一条线。

干杯提前

回答

3

试试这个:

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

工程就像一个魅力,谢谢 – BenAlabaster 2009-08-19 16:10:20