日期:2014-05-17  浏览次数:20539 次

求助大神:sqlDataReader 取到了值,还提示未将对象引用设置到对象的实例
未将对象引用设置到对象的实例。 
说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。

源错误: 


行 25: if (sdr[3].Equals(DBNull.Value) == false)
行 26: {
行 27: areaI.area_id = sdr.GetInt32(0);行 28: areaI.district = sdr.GetString(3);
行 29: areaI.street = sdr.GetString(4);
 



------解决方案--------------------
areaI 不存在
------解决方案--------------------
areaI可能为null。
------解决方案--------------------
sdr[3]是datareader对象。
dbnull是dbnull对象。两者永远不可能equals
if (sdr[3].Equals(DBNull.Value) == false)
这个意思是说
if(false=false)

判断是否为空应该为:

if(sdr[3].IsDbNull)
{
....
}