日期:2014-05-20  浏览次数:20478 次

求一个关于 用QueryString 查询的问题
在一个页面中
有a~z个可按音序查询的 <a   href=search.aspx?letter=a> </a>

同时   在该页(search.aspx)还有一个按钮
按不同的条件查询   入关键字、类别等

两种查询都将结果绑定在datagrid中

当datagrid分页时就会出现问题  
只要Request.QueryString[ "letter "]有值
分页时datagrid   的向就按   Request.QueryString[ "letter "]的值绑定  

page_load内代码   如下
if(this.Request.QueryString[ "letter "]!=null)
{
        int   count=0;
        string   letter=Request.QueryString[ "letter "].Trim();
        ViewState[ "Letter "]=letter;
        DataSet   ds=this.GetDataByLetter(letter);
        this.dg_BuildingList.DataSource=ds;
        this.dg_BuildingList.DataBind();
        if(ds.Tables.Count> 0)
        {
count=ds.Tables[0].Rows.Count;
        }
        this.lbl_Count.Text=count.ToString();
}
请问怎么解决呢?

------解决方案--------------------
组合sql语句呗.

string sql = " ";
如果letter不为空,sql += "........ ";
如果其他查询不为空, sql += "....... ";

然后再把sql提交给数据库.

或者写存储过程.把各项查询值无论空或不空,交给存储过程编程处理.