日期:2014-05-20  浏览次数:20890 次

空引用错误
我在使用linq的时候
单步调试
每次都在第一句报错
string strStart = year + "-" + nStart + "-01 00:00:00";
var myfundOpenQ = lctxDAL.TB_Product_MyFund_Open.Where(o => o.MyFundID == fundasset.myfundasset.MyFundID).Where(o => o.BuyTime.CompareTo(strStart) < 0).Where(o => o.scbz == "1").Where(o => o.dingtou == "0").ToList();

说是空引用NullReferenceException
这是为什么?

------解决方案--------------------
设置个断点,看看var myfundOpenQ = lctxDAL.TB_Product_MyFund_Open.Where(o => o.MyFundID == fundasset.myfundasset.MyFundID).Where(o => o.BuyTime.CompareTo(strStart) < 0).Where(o => o.scbz == "1").Where(o => o.dingtou == "0").ToList(); 
这句里是不是有null值。
------解决方案--------------------
lctxDAL未实例化??
------解决方案--------------------
string strStart = year + "-" + nStart + "-01 00:00:00"; 
这个有错?

------解决方案--------------------
根据我的经验,很可能
var myfundOpenQ = lctxDAL.TB_Product_MyFund_Open.Where(o => o.MyFundID == fundasset.myfundasset.MyFundID).Where(o => o.BuyTime.CompareTo(strStart) < 0).Where(o => o.scbz == "1").Where(o => o.dingtou == "0").ToList(); 

是你的字段为空,比如BuyTime为空?scbz为空?dingtou为空?

因为我也碰到过类似问题。