我用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";
但是如果涉及到多条件查询的话,应该怎么办呢?以下是我的多条件查询语句.怎么把这些做成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";
现在多条件,我是不是要把这句str传到存储过程里.但好像..不能传进去吧..谁知道吗?咋办?
其实最重要的问题就在
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());
}