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)
是不是你那个&&挨的太紧 了,我平时也这样用,,没看出那里有错误