我用AspNetPager存储过程可以很轻松的分页.
但是如果涉及到多条件查询的话,应该怎么办呢?以下是我的多条件查询语句.怎么把这些做成AspNetPager分页.或者其它办法分页..
AspNetPager可以不用存储过程来分页吗?直接T-SQL运行.. string str = "select count(lease_id) as [coun] from lease where lease_daodate > getdate()"; //记录条数
        if (Select1.Value != "0")
        {
            str += " and city = '" + county.Value.ToString() + "'";
        }
        if (Select2.Value != "选择")
        {
            str += " and hx = '" + Select2.Value.ToString() + "'";        }
        if (Select3.Value != "选择")
        {
            str += " and fitment = '" + Select3.Value.ToString() + "'";        }
        if (txprice1.Value != "" || txprice2.Value != "")
        {
            str += " and lease_price > '" + txprice1.Value.ToString() + "' and lease_price <  '" + txprice2.Value.ToString() + "'";
                   }
        str += " order by id desc";
        str1 += " order by id desc";
        str2 += " order by id desc";

解决方案 »

  1.   

    用字符串 String SQLstr=条件1+条件2+。。
      

  2.   

    记住中间要有and,有思路你自己就能写好了
      

  3.   

    T-SQL我是会了,但是我原来都是用AspNetPager的存储过程分页,
    现在多条件,我是不是要把这句str传到存储过程里.但好像..不能传进去吧..谁知道吗?咋办?
      

  4.   

    aspnetpager跟数据源无关,所以你用什么都没关系,只要能根据(当前页\页大小\总数)取分页数据
      

  5.   

    AspNetPager应该和存储过程没关系吧,但是分页的存储过程肯定是最好的选择,你可以找一个通用的分页存储过程
      

  6.   

    见http://www.cnblogs.com/meetweb/archive/2005/09/13/140239.html
    其实最重要的问题就在 
     Select Top  {0} *  From User Where user_id Not in ( Select Top {1} user_id From User Order By user_id 使用sql本身已经把要分页的数据取出来。。其实DataGrid只是绑定显示而已。AspNetPager只是做了显示页码等数据显示而已 private void Page_Load(object sender, System.EventArgs e) 
      { 
       // 在此处放置用户代码以初始化页面 
       if(!Page.IsPostBack ) 
       { 
        //求该数据集合的记录总和 
        SqlDataBase SqlDB=new SqlDataBase(DSN); 
        string strsql="Select count(user_id) from User"; 
        DataSet ds= SqlDB.CreateSet(strsql,"IUser"); 
        this.AspNetPager1.RecordCount=System.Convert.ToInt32(ds.Tables[0].Rows[0][0]) ; 
        SqlDB.CloseConnection(); 
        BindData(); 
       } 
      } void BindData() 
      { 
       SqlDataBase SqlDB=new SqlDataBase(DSN); 
       
       int RecordPage=(AspNetPager1.CurrentPageIndex-1)*AspNetPager1.PageSize; 
       string strsql=String.Format(" Select Top  {0} *  From User Where user_id Not in ( Select Top {1} user_id From User Order By user_id)",AspNetPager1.PageSize.ToString(),RecordPage.ToString()); 
       SqlDataAdapter adapter= SqlDB.CreateAdapter(strsql); 
       DataSet ds=new DataSet(); 
       ds=SqlDB.CreateSet(strsql,"IUser"); 
       //adapter.Fill(ds,AspNetPager1.PageSize*(AspNetPager1.CurrentPageIndex-1),AspNetPager1.PageSize,"IU_User");   
       this.DataGrid1.DataSource=ds.Tables["IUser"]; 
       this.DataGrid1.DataBind(); 
       //动态设置用户自定义文本内容 
       AspNetPager1.CustomInfoText="记录总数:<font color=\"blue\"><b>"+AspNetPager1.RecordCount.ToString()+"</b></font>"; 
       AspNetPager1.CustomInfoText+=" 总页数:<font color=\"blue\"><b>"+AspNetPager1.PageCount.ToString()+"</b></font>"; 
       AspNetPager1.CustomInfoText+=" 当前页:<font color=\"red\"><b>"+AspNetPager1.CurrentPageIndex.ToString()+"</b></font>"; 
      } private void AspNetPager1_PageChanged(object src, Wuqi.Webdiyer.PageChangedEventArgs e) 
      { 
       AspNetPager1.CurrentPageIndex=e.NewPageIndex; 
       BindData(); 
       System.Text.StringBuilder sb=new StringBuilder("<script Language=\"Javascript\"><!--\n"); 
       sb.Append("var el=document.all;"); 
       sb.Append(this.DataGrid1.ClientID); 
       sb.Append(".scrollIntoView(true);"); 
       sb.Append("<"); 
       sb.Append("/"); 
       sb.Append("script>"); 
       if(!Page.IsStartupScriptRegistered("scrollScript")) 
        Page.RegisterStartupScript("scrollScript",sb.ToString()); 
      }