日期:2014-05-18  浏览次数:20773 次

判断 SqlDataReader 返回的是null 的问题
SqlDataReader   reader   =   cmd.ExecuteReader();

while   (reader.Read())
{
.....
}

返回的是空表,但是     reader.Read()   返回值是true
用SQL查询分析器执行我的sql指令得到如下结果
            无列名
1           null

如何判断reader   返回的是空呢

------解决方案--------------------
reader[0] is DBNull
------解决方案--------------------
DBNull
------解决方案--------------------
dr.HasRows == false
------解决方案--------------------
既然用SQL查询分析器执行sql指令得到如下结果
无列名
1 null
说明语句返回的不是空,还是有一行数据的所以
dr.HasRows == true
reader.Read() == true
这时应该修改sql语句使返回为空,或者判断reader[0] is DBNull
------解决方案--------------------
检查主键是否为空,就是把它和DBNull.Value对比