手写分页函数C#

12/8/2006来源:C#应用人气:12997

        /**//// <summary>
        /// 返回数据集
        /// </summary>
        /// <param name="sql"></param>
        /// <returns></returns>
        public DataSet GetData(string sql,string strconn)
        {
            OleDbConnection ole=new OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source="+strconn);
            ole.Open();
            OleDbCommand cm=new OleDbCommand(sql,ole);
            DataSet ds=new DataSet();
            OleDbDataAdapter da=new OleDbDataAdapter(cm);
            da.Fill(ds);
            ole.Close();

            return ds;
        }

        /**//// <summary>
        /// 分页
        /// </summary>
        /// <param name="pagesize">每页大小</param>
        /// <param name="pageindex">当前页数</param>
        /// <param name="field">获取字段名</param>
        /// <param name="tablename">表名</param>
        /// <param name="orderfield">排序字段</param>
        /// <param name="taxis">排序方式,true为升序,false为降序</param>
        /// <param name="condition">满足的条件</param>
        /// <returns></returns>
        public DataSet GetPage(int pagesize,int pageindex,string field,string tablename,string orderfield,bool taxis,string condition)
        {
            string temp;
            if(taxis)
            {
                temp="asc";
            }
            else
            {
                temp="desc";
            }

            string sql;
            if(pageindex==1)             
            {
                if(condition=="")
                {
                    sql="select top "+pagesize+" "+field+" from "+tablename+" order by "+orderfield+" "+temp;
                    return GetData(sql);
                }
                else
                {
                    sql="select top "+pagesize+" "+field+" from "+tablename+" where "+condition+" order by "+orderfield+" "+temp;
                    return GetData(sql);
                }
            }
            else
            {
                pageindex=(pageindex-1)*pagesize;
                if(condition=="")
                {
                    if(taxis)
                    {
                        sql="select top "+pagesize+" "+field+" from "+tablename+" where "+orderfield+">all(select top "+pageindex+" "+orderfield+" from "+tablename+" order by "+orderfield+" "+temp+") order by "+orderfield+" "+temp;
                    }
                    else
                    {
                        sql="select top "+pagesize+" "+field+" from "+tablename+" where "+orderfield+"<all(select top "+pageindex+" "+orderfield+" from "+tablename+" order by "+orderfield+" "+temp+") order by "+orderfield+" "+temp;
                    }
                    return GetData(sql);
                }
                else
                {
                    if(taxis)
                    {
                        sql="select top "+pagesize+" "+field+" from "+tablename+" where "+condition+" and "+orderfield+">all(select top "+pageindex+" "+orderfield+" from "+tablename+" where "+condition+" order by "+orderfield+" "+temp+") order by "+orderfield+" "+temp;
                    }
                    else
                    {
                        sql="select top "+pagesize+" "+field+" from "+tablename+" where "+condition+" and "+orderfield+"<all(select top "+pageindex+" "+orderfield+" from "+tablename+" where "+condition+" order by "+orderfield+" "+temp+") order by "+orderfield+" "+temp;
                    }
                    return GetData(sql);
                }
            }

        }


希望给于评价
http://www.cnblogs.com/wang123/archive/2006/12/08/586505.html