分页和搜索的结合

本文介绍了一种将搜索功能与分页功能相结合的技术实现方案。通过使用SQL语句动态构造查询条件,能够灵活地根据不同的搜索类型进行数据筛选,并在结果集中实现分页展示。该方法适用于需要同时支持搜索和分页的Web应用程序。
 
有要实现分爷,又要实现搜索。
我想先搜索出个TABLE然后再在TABLE中实现分页。
结果一大对语法越弄越复杂,最后以失败告终。

组长实现的方法:
 public DataTable ShowPagesea(string searchType, int PageIndex, int PageSize, string DataTable, string searchValue)
        {
            string sqlWhere = "";
            switch (searchType)
            {
                case "RealName":
                    sqlWhere = "and RealName like '%" + searchValue + "%'";
                    break;
                case "DTitle":
                    sqlWhere = "and Dtitle like '%" + searchValue + "%'";
                    break;
                case "TDtype":
                    sqlWhere = "and TDtype='" + searchValue + "'";
                    break;
                case "all":
                    sqlWhere = "";
                    break;
                default:
                    break;
            }
            string sql = "select top " + PageSize + " * from " + DataTable + " where Did Not in (select top " + (PageIndex - 1) * PageSize + " Did from " + DataTable + " where 1=1 " + sqlWhere + " order by Did desc) " + sqlWhere + " order by Did desc ";
            DataTable dt = sdh.dbODSGetDataTable(sql, DataTable);
            return dt;
        }
 public int ShowPageCountsea(string searchType, string DataTable, string searchValue)
        {
            string sqlWhere = "";
            switch (searchType)
            {
                case "RealName":
                    sqlWhere = " where RealName like '%" + searchValue + "%'";
                    break;
                case "DTitle":
                    sqlWhere = " where Dtitle like '%" + searchValue + "%'";
                    break;
                case "TDtype":
                    sqlWhere = " where TDtype='" + searchValue + "'";
                    break;
                case "all":
                    sqlWhere = "";
                    break;
                default:
                    break;
            }
            string sql = "select count(*) from " + DataTable + sqlWhere;
            int i = Convert.ToInt32(sdh.dbExecuteSql4Value(sql));
            if (i % 10 == 0)
            {
                i = i / 10;
            }
            else
            {
                i = i / 10 + 1;
            }
            return i;
        }
直接把判断加进去,两个条件同时进行判断。实现了功能。

转载于:https://www.cnblogs.com/gengxiaochao/archive/2007/09/03/879951.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值