Linq 查询中的 DBnull 导致问题
我正在执行一个查询:
int numberInInterval = (from dsStatistics.J2RespondentRow item in jStats.J2Respondent
where item.EndTime > dtIntervalLower && item.EndTime <= dtIntervalUpper
select item).count();
endtime 列中似乎有一些 dbnull。 有什么办法可以避免这些吗?
尝试添加 &&其中 item.endtime != null.. 甚至 != dbnull.value
我是否必须执行第二个(第一个)查询来获取所有非空值,然后运行上面的查询?
我确信它的修复超级简单,但我仍然想念它..
谢谢 纳特
i am doing a query thus:
int numberInInterval = (from dsStatistics.J2RespondentRow item in jStats.J2Respondent
where item.EndTime > dtIntervalLower && item.EndTime <= dtIntervalUpper
select item).count();
there appear to be some dbnulls in the endtime column..
any way i can avoid these?
tried adding && where item.endtime != null.. and even != dbnull.value
do i have to do a second (first) query to grab all that arent null then run the above one?
im sure its super simple fix, but im still missing it.. as per
thanks
nat
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我认为你想使用 item.EndTime.HasValue,而不是 item.EndTime == null。
I think you want to use item.EndTime.HasValue, and not item.EndTime == null.
最简单的方法是对可以为 null 的值使用 .GetValueOrDefault(...Some合理的默认值...) ,这样可以避免错误。
The simplest way to do it is to use .GetValueOrDefault(...Some reasonable default...) on the value that can be null and it will avoid the error.
我通常在 T-SQL 查询中执行此操作的方法是在日期上使用 ISNULL,并在日期为空时将日期设置为“12/31/2099”。
使用 Linq 可能是这样的:
from t in MyTable
在哪里
Convert.ToString((Convert.ToString(t.MyDateColumn) ?? "12/31/2099")) <我的目标值
The way I typically do this in a T-SQL query is to use ISNULL on the date, and set the date to something like '12/31/2099' when it's null.
With Linq it could be something like this:
from t in MyTable
where
Convert.ToString((Convert.ToString(t.MyDateColumn) ?? "12/31/2099")) < MyTargetValue