2009-12-03 25 views
0

我正在做這樣一個查詢:的DBNull在Linq查詢造成的問題

int numberInInterval = (from dsStatistics.J2RespondentRow item in jStats.J2Respondent 
        where item.EndTime > dtIntervalLower && item.EndTime <= dtIntervalUpper 
        select item).count(); 

,似乎有在結束時間列中的某些dbnulls .. 什麼辦法能避免這些?

嘗試添加& &其中item.endtime!= NULL ..甚至!= dbnull.value

做我必須做的第二(第一)查詢抓住所有的arent null,則運行上面的一個?

我確定它的超級簡單修復,但即時仍下落不明吧..按

感謝 NAT

+0

這些數據的來源是什麼? – 2009-12-03 18:36:26

回答

0

我通常這樣做在T-SQL查詢的方式是在日前使用ISNULL ,並且當它爲空時將日期設置爲'12/31/2099'之類的東西。

使用LINQ它可能是這樣的:

從噸MyTable的 其中 Convert.ToString((Convert.ToString(t.MyDateColumn) - 「2099年12月31日」))< MyTargetValue

1

我想你想使用item.EndTime.HasValue,而不是item.EndTime == null。

1

最簡單的方法是使用.GetValueOrDefault(...一些合理的默認值...)的值可以爲null,它將避免錯誤。