手写分页函数C#

Posted on 2007-10-06 14:18  Flying to the top  阅读(240)  评论(0)    收藏  举报

/**//// <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);

                }

            }

 

        }

 

 

 

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3