linq查询数据源为空怎么办?

wvirtue 2014-11-06 10:26:30
各位大侠,我用linq查询数据库pd,pd里面有一张表md,md里面有id,date等参数,我要把id=50的数据全查出来,用linq查询
var q= (from p in pd.md
where p.Id == 50
select p).FirstOrDefault();

我要取date这个参数textbox1.text=q.date
这里有个问题,数据表里面date有时候是没有的,linq查询的时候会出错,怎么处理这种情况?提前判断是不行的,因为数据还没有查询出来,分不多,谢谢了!
...全文
373 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
wvirtue 2014-11-07
  • 打赏
  • 举报
回复
单独判断就行了,给分结贴
smthgdin_020 2014-11-06
  • 打赏
  • 举报
回复
1.linq加判断; 2.最后FirstOrDefault 的时候,如果查询不到数据返回null;如果是first则异常。
我现在在路上 2014-11-06
  • 打赏
  • 举报
回复
p.date==DB.NULL?"默认值":p.date; 判断下不就行了,难道不行?
於黾 2014-11-06
  • 打赏
  • 举报
回复
你这个问题跟LINQ 2 SQL一点关系都没有 把到底要查询什么数据先理顺了吧
於黾 2014-11-06
  • 打赏
  • 举报
回复
引用 5 楼 wvirtue 的回复:
谢谢各位热心帮助,关键是不能滤除date为空的数据行,因为这一行其他数据我还得用
我要取date这个参数textbox1.text=q.date 你这是自相矛盾啊 既然要取时间等于文本框输入时间的数据,时间为空的为什么也要取出来
wvirtue 2014-11-06
  • 打赏
  • 举报
回复
谢谢各位热心帮助,关键是不能滤除date为空的数据行,因为这一行其他数据我还得用
effun 2014-11-06
  • 打赏
  • 举报
回复
没有数据时,FirstOrDefault返回的是null,所以要判断q的值是否为空。
q107770540 2014-11-06
  • 打赏
  • 举报
回复
你要理解 FirstOrDefault 和First的区别
  • 打赏
  • 举报
回复
textbox1.text=q==null?"":q.date
hwangt0 2014-11-06
  • 打赏
  • 举报
回复
你where条件后面不能再加个判断date不为空的条件吗?
於黾 2014-11-06
  • 打赏
  • 举报
回复
where q.date==dbnull or textbox1.text=q.date
wvirtue 2014-11-06
  • 打赏
  • 举报
回复
额,我没有把问题描述清楚,md里面有很多行数据,我要取date,name,qty 三个值,其中有的date里面没有数据,date没有数据的话可以用默认值表示,就像这样子 id date name qty 50 lily 1 40 11/5 lucy 2 50 11/7 betty 3 50 10/31 Gim 4 50 cathy 1 可以根据id==50 查出4组数据,其中有两行date里面什么也没有,如果我linq直接判断的话(where q.date!=dbnull),就把那两行滤掉了,但是这两行的其他数据name,qty也还是要的,date用默认值表示。怎么提前判断?谢谢

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧