首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

大师快来,小弟需要

2012-06-03 
大师快来,小弟需要求助我写了个类,有个方法public PagedDataSource getware(){string strcon Configurat

大师快来,小弟需要求助
我写了个类,有个方法 public PagedDataSource getware()
  {
  string strcon = ConfigurationManager.ConnectionStrings["SuperMarketDBConnectionString"].ConnectionString;
  string str = "select * from T_Ware";
  SqlConnection con=new SqlConnection ();
  con.ConnectionString =strcon ;
  SqlDataAdapter sda = new SqlDataAdapter(str, con);
  DataSet ds = new DataSet();
  sda.Fill(ds, "Ware");
  PagedDataSource pds= new PagedDataSource();
  pds.DataSource = ds.Tables["Ware"].DefaultView;
  pds.AllowPaging = true;
  pds.PageSize = 6;
  return pds;
   
  }
内容页里面有个datalist和objectdatasourse,我用objectdatasourse绑定到这个方法,在datalist绑定objectdatasourse,可是我数据库里面有14条记录,我要分3页来显示,然后我在内容页立面图添加了2个linkbutton,可是我就是起不到,上一页,下一页的效果

pageload里面的代码是

  protected void Page_Load(object sender, EventArgs e)
  {
  if (!IsPostBack)
  {
  Class1 cs = new Class1();
  PagedDataSource pds = cs.getware();
  Labeltotal.Text = "共" + pds.PageCount + "页";
  Labelcurrent.Text = "当前第" + ((pds.CurrentPageIndex) + 1).ToString() + "页";
  Session["pds"] = pds;
  }

  }
  protected void LinkButton3_Click(object sender, EventArgs e)
  {
  PagedDataSource pds = (PagedDataSource)Session["pds"];
  if (!pds.IsFirstPage)
  pds.CurrentPageIndex -= 1;
  }
  protected void LinkButton4_Click(object sender, EventArgs e)
  {
  PagedDataSource pds = (PagedDataSource)Session["pds"];
  if (!pds.IsLastPage )
  pds.CurrentPageIndex += 1;
  }

我无论用viewstate还是session都没效果

[解决办法]
首先我暂时不知道你这是什么原因,会不会是数据太多了?这种方法没用过,后期该的话害死你!!!
我可以推荐个方法给你
注意:我这个暂时写的是Oracle的分页句子,真正的分页

C# code
        //分页方法        /// <summary>        /// 分页获取数据        /// </summary>        /// <param name="tableName">数据表名称</param>        /// <param name="columns">列名,为空则默认检索所有字段</param>        /// <param name="where">检索条件,可以为空</param>        /// <param name="orderColumns">排序字段+排序规则</param>        /// <param name="pageSize">每页显示记录数</param>        /// <param name="pageIndex">要显示的页码</param>        /// <param name="recordCount">总记录数</param>        /// <returns></returns>        public DataSet GetData(string tableName, string columns, string where, string orderColumns, int pageSize, int pageIndex, ref int recordCount)        {            if (string.IsNullOrEmpty(tableName))            {                return null;            }            else            {                string getCountSql = string.Format("SELECT COUNT (*)  FROM {0} WHERE 1=1 {1}", tableName, where);                recordCount = tools.GetRecordCount(getCountSql);                int rowStart = pageIndex * pageSize;                int rowEnd = (pageIndex + 1) * pageSize;                string sql = "";                if (!string.IsNullOrEmpty(orderColumns))                {                    orderColumns = " order by " + orderColumns;                }                if (string.IsNullOrEmpty(columns))                {                     columns = " * ";                    sql = string.Format("select * from (SELECT rownum rn, e.{0}  FROM (select * from {1} WHERE 1=1  {4} {5} ) e  where  rownum<={3}) where rn>{2}", columns, tableName, rowStart, rowEnd, where, orderColumns);//对应的SQL语句                }                else                {                    sql = string.Format("select * from (SELECT rownum rn, {0}  FROM (select * from {1} WHERE 1=1  {4} {5} ) e  where  rownum<={3}) where rn>{2}", columns, tableName, rowStart, rowEnd, where, orderColumns);//对应的SQL语句                }                return tools.GetData(sql);//这里是我封装的一个获取结果集的方法,和你上面的那个getware()所起到的作用是一样的,你可以把这里替换掉            }        } 

热点排行