string strWhere = "";
        BLL.P_User bll = new BLL.P_User();
        DataSet ds =bll.GetList(strWhere);
        DataView dv = new DataView();
        dv = ds.Tables["tb_user"].DefaultView;
        //获取分页总页数
        AspNetPager.RecordCount = dv.Count;
        PagedDataSource pds = new PagedDataSource();
        pds.DataSource = dv;
        pds.AllowPaging = true;
        pds.CurrentPageIndex = AspNetPager.CurrentPageIndex - 1;
        pds.PageSize = AspNetPager.PageSize;
        rptUser.DataSource = pds;
        rptUser.DataBind();
        ds.Tables["tb_user"].Dispose();
调用方法:
 public DataSet GetList(string strWhere)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append("select * from tb_user");
            if (strWhere.Trim() != "")
            {
                strSql.Append("where"+strWhere);
            }
            return DbHelperSQL.Query(strSql.ToString());
        }
public static DataSet Query(string SQLString)
        {
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                DataSet ds = new DataSet();
                try
                {
                    connection.Open();
                    SqlDataAdapter command = new SqlDataAdapter(SQLString, connection);
                    command.Fill(ds, "ds");
                }
                catch (System.Data.SqlClient.SqlException ex)
                {
                    throw new Exception(ex.Message);
                }
                return ds;
            }
        }
错误:
dv = ds.Tables["tb_user"].DefaultView;
未将对象引用设置到对象的实例

解决方案 »

  1.   

    debug一下看看ds里面tables是不是为null
      

  2.   


    先断点bll.GetList(strWhere)看return的值
      

  3.   

    string strWhere = "";
      BLL.P_User bll = new BLL.P_User();
      DataSet ds =bll.GetList(strWhere);
      DataView dv = new DataView();
      dv = ds.Tables["tb_user"].DefaultView;
    strWhere 为什么要传个空值,既然是空那又何必写?不是多此一举?DataSet ds =bll.GetList(strWhere);ds里没有数据。断点调试
      

  4.   

    XD找本书看看吧 怎么调试程序,既然提示出错: 
    dv = ds.Tables["tb_user"].DefaultView;那你就设个断点看看,到底哪个东西是空的!
    是ds 为null,还是说ds是有内容的,但是里面没有tb_user这个表
      

  5.   

    对了 你的ds里怎么会有名为:"tb_user" 的数据表呢?dv = ds.Tables[0].DefaultView;
      

  6.   

    断点  debug 你的ds可能为null
      

  7.   

    strSql.Append("where"+strWhere);
    where没得空格
    strSql.Append("where "+strWhere);
      

  8.   

    StringBuilder strSql = new StringBuilder();
      strSql.Append("select * from tb_user    ");
      if (strWhere.Trim() != "")
      {
      strSql.Append("where  "+strWhere);
      }
      

  9.   


    strSql.Append("  where  "+strWhere);  //拼接字符串,记住前后都要有空格