我的ado是这样写的  public DataSet getlist(string ab)
        {
            using (SqlConnection cn = new SqlConnection (sqlstr ))
            {
                string juzi = "select * from DepartmentInfo";
                DataSet ds = new DataSet ();
                if (ab != "")
                {
                    juzi = "select * from DepartmentInfo where "+ab ;
                }
                
                
                try
                {
                    cn.Open();
                    SqlDataAdapter ada = new SqlDataAdapter(juzi,sqlstr );
                    ada.Fill(ds);
                }
                catch (System.Data.SqlClient.SqlException ex)
                {
                    throw (ex);
                }                return ds;
            }
        }然后我在前面调用的时候 条件输了一个错误的 查询语句变成 select * from DepartmentInfo where sID=1 (假设没有sID=1这条记录) 但是他返回的为什么不是空的dataset?以至于我在前台判断他的时候 ds == null  没用 要用这句才行 ds.Tables[0].Rows.Count == 0  这是为什么呢?

解决方案 »

  1.   

    你看看select count(sID) from DepartmentInfo where sID=1 ,返回的是1还是0
      

  2.   

    本来就应该是这样。你去Google查询一个查不到的东西,你说应该返回“找不到查询结果”的网页呢,还是什么也不返回,变成无法连接服务器呢?或者说,考试的时候,你什么都不会做,你是交白卷呢,还是什么也不交呢。显然找不到数据应该返回空数据集,而不是不返回数据集。