使用ADO.NET + 存储过程,在winform里实现分页查询的功能。
实现思路:
- 使用存储过程,根据查询条件,查出若干个表;
- 返回DataSet,再去读取DataSet的Table。
以一个超市管理系统里面登录日志的查询为例,做示例代码。
数据库表结构
一部分测试数据:
存储过程编写
1 if exists(select * from sysobjects where name='usp_LoginLogsPagingQuery') 2 drop procedure usp_LoginLogsPagingQuery 3 go 4 5 create procedure usp_LoginLogsPagingQuery 6 @PageSize int,--每页显示数据行数 7 @RecordCount int, 8 @BegainTime dateTime, 9 @EndTime dateTime 10 as 11 declare @CurrentPage int=1--当前页数 12 declare @Temp int= @PageSize*(@CurrentPage-1) 13 while (@Temp<=@RecordCount) 14 Begin 15 select Top (@PageSize) LoginId,LoginName, ServerName,LoginTime,ExitTime from LoginLogs 16 where LoginId not in (select Top (@Temp) LoginId from LoginLogs where LoginTime between @BegainTime and @EndTime order by LoginTime ASC) and LoginTime between @BegainTime and @EndTime order by LoginTime ASC 17 set @CurrentPage=@CurrentPage+1 18 set @Temp = @PageSize*(@CurrentPage-1) 19 End 20 go