ASP.NET中分页查询与搜索的关键代码实现

需积分: 9 1 下载量 5 浏览量 更新于2024-10-08 收藏 4KB TXT 举报
ASP.NET 实现分页是一种常见的服务器端处理大量数据展示的技术,通过将数据集划分为多个部分(页)以提高用户体验和性能。在给定的代码片段中,主要展示了两个存储过程:`proc_KeTiList` 和 `proc_KeTiCount`,用于实现基于查询条件的分页和搜索功能。 1. **存储过程 `proc_KeTiList`**: - 这个存储过程接收三个参数:`@jianchengName`(关键词)、`@startIndex`(当前页的起始索引,即偏移量)和 `@endIndex`(当前页的结束索引)。它根据不同的`@type`值执行不同操作: - 当 `@type` = 1 时,执行全表查询并按 ID 升序排序,然后返回指定范围内的记录。 - 当 `@type` = 2 时,执行带有关键词搜索的功能,只返回 `ketiJianCheng` 字段包含关键词的记录,并同样按 ID 排序后分页显示。 - 当 `@type` = 3 时,如果类型为 3,表示不进行任何筛选,直接返回所有 `SY_KeTi` 表中的记录。 2. **分页逻辑**: - 使用临时表 `@indextable1` 或 `@indextable2` 存储中间结果,这些临时表的作用是保存需要展示的记录索引。`set rowcount @endIndex` 语句用于设置游标跳过的行数,确保只获取一页的数据。 - 在 `SELECT` 语句中,通过 `t.id between @startIndex and @endIndex` 条件限制了返回的数据范围,实现了分页效果。 3. **搜索功能**: - 当 `@type` = 2 时,使用 `LIKE` 操作符配合 `%` 符号进行模糊匹配,允许用户输入的部分关键词出现在 `ketiJianCheng` 的任意位置,增加了搜索的灵活性。 4. **`proc_KeTiCount` 存储过程**: - 这个存储过程用于计算符合条件(关键词搜索或全表)的记录总数,作为分页的基础,输出到 `@countint` 参数中,为前端提供总页数信息。 这段代码展示了在 ASP.NET 中使用 SQL 存储过程实现分页和搜索功能的核心逻辑。通过动态创建和执行存储过程,可以根据不同的参数灵活控制查询条件,为用户提供高效且定制化的数据检索体验。这对于大型数据集的网站应用非常实用,可以有效减轻服务器负担,提升用户体验。