手写分页函数C#

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

            }


        }



希望给于评价
posted on 2006-12-08 15:36  感動常在  阅读(4546)  评论(4编辑  收藏  举报