当前位置: 代码迷 >> ASP.NET >> ds.Tables[0].Rows.Count 能查到0表 但count=0 sql语句没有关问题
  详细解决方案

ds.Tables[0].Rows.Count 能查到0表 但count=0 sql语句没有关问题

热度:10482   发布时间:2013-02-25 00:00:00.0
ds.Tables[0].Rows.Count 能查到0表 但count=0 sql语句没问题
string sql = "select * from View_TaskCourse where task_id=11";


  DataSet ds = TaskSystem.DAL.DbHelper.Query(sql);

if (ds!=null&& ds.Tables[0].Rows.Count > 0)//这句一直不满足

------解决方案--------------------------------------------------------
先看看ds是否为空。
1,if(ds == null) 这是判断内存中的数据集是否为空,说明DATASET为空,行和列都不存在!!
2,if(ds.Tables[0].Count == 0) 这应该是在内存中存在一个DATASET,但是,数据集中不存在表!!
3,if(ds.Tables[0].Count == 1 && ds.Tables[0].Rows.Count == 0) 说明存在表table,但是,表内没有数据!
------解决方案--------------------------------------------------------
怎么又发一遍?
ds.Tables["ds"].Rows.Count
------解决方案--------------------------------------------------------
1 你的SQL语句能不能筛选出数据来
2 看你的TaskSystem.DAL.DbHelper.Query 这个方法的连接字符串等信息是否正确,DataSet里数据为NULL或是Count为0的原因也可能跟他有关系

个人建议把判断分开写,这样才清楚到底是ds里是空的还是筛选出来的结果就是NULL
------解决方案--------------------------------------------------------
分开比较好看点
先判断null
再判断有无数据
------解决方案--------------------------------------------------------
if (ds !=null && ds.Tables[0].Rows.Count > 0)
是不是你那个&&挨的太紧 了,我平时也这样用,,没看出那里有错误
  相关解决方案