当前位置: 代码迷 >> C# >> c# 读取空表sqldatareader.reader()返回值是true,而且sqldatareader.hasrows属性值也是true
  详细解决方案

c# 读取空表sqldatareader.reader()返回值是true,而且sqldatareader.hasrows属性值也是true

热度:292   发布时间:2016-05-05 04:11:38.0
c# 读取空表sqldatareader.reader()返回值是true,并且sqldatareader.hasrows属性值也是true

如题,怎样解决,数据库是sqlserver2000
------解决思路----------------------
既然
sqldatareader.hasrows == true 
sqldatareader.reader() == true 
这时应该修改sql语句使返回为空,或者判断reader[0] is DBNull 

SqlDataReader.Read 方法
------解决思路----------------------
确定你的查询语句 没有搞错??
------解决思路----------------------
你把你的查询语句贴出来看一下,正常来说,如果返回的是true,就说明查询结果有数据。但是查询有数据不等于表里面有数据。比如表Stock是空的,下面两句的结果就不一样

//没有记录,HasRows返回false
"SELECT * FROM Stock";
//返回数据0,HasRows返回true
"SELECT COUNT(*) FROM Stock";

------解决思路----------------------
sqldatareader.reader()是true正常,表示SQL语句执行成功
至于sqldatareader.hasrows是true
看看你到底读到了个什么东西啊
------解决思路----------------------
..有数据列当然也有有标题列.......那两个为true只能说明sql执行成功而已...
------解决思路----------------------
什么样的查询语句?
  相关解决方案