SQL存储过程分页

SQL存储过程分页

 

 

在C#DAL层中的代码

 

 1public DataSet CutPage(int i,out int Count, out int PageCount)//(int PageSize, int PageIndex, string strWhere, ref int Output)
 2        {
 3            SqlParameter[] parameters = {
 4                     new SqlParameter("@TableName", SqlDbType.VarChar, 200),//表名
 5                     new SqlParameter("@FieldList", SqlDbType.VarChar, 2000),//显示列名,如果是全部字段则为*
 6                     new SqlParameter("@PrimaryKey", SqlDbType.VarChar,100),//单一主键或唯一值键
 7                     new SqlParameter("@Where", SqlDbType.VarChar,2000),//查询条件 不含'where'字符,如id>10 and len(userid)>9
 8                     new SqlParameter("@Order", SqlDbType.VarChar,2000),//排序 不含'order by'字符,如id asc,userid desc,必须指定asc或desc
 9                     //注意当@SortType=3时生效,记住一定要在最后加上主键,否则会让你比较郁闷
10                     new SqlParameter("@SortType", SqlDbType.Int),//排序规则 1:正序asc 2:倒序desc 3:多列排序方法
11                     new SqlParameter("@RecorderCount", SqlDbType.Int),//记录总数 0:会返回总记录
12                     new SqlParameter("@PageSize", SqlDbType.Int),//每页输出的记录数
13                     new SqlParameter("@PageIndex", SqlDbType.Int),//当前页数
14                     new SqlParameter("@TotalCount", SqlDbType.Int),//记返回总记录
15                     new SqlParameter("@TotalPageCount", SqlDbType.Int),//返回总页数               
16                     }
;
17            parameters[0].Value = "CGF_Posts";
18            parameters[1].Value = "*";
19            parameters[2].Value = "PostID";
20            parameters[3].Value = "";
21            parameters[4].Value = "DateLine";
22            parameters[5].Value = 2;//排序规则
23            parameters[6].Value = 0;//记录总数 0:会返回总记录
24            parameters[7].Value = 10;//每页输出的记录数
25            parameters[8].Value = i;//当前页数
26            parameters[9].Direction = System.Data.ParameterDirection.Output;
27            parameters[10].Direction = System.Data.ParameterDirection.Output;
28            DataSet ds = DbHelperSQL.RunProcedure("P_viewPage_A", parameters, "ds");
29            if (parameters[9].Value != DBNull.Value && parameters[9].Value.ToString() != string.Empty)
30            {
31                Count = Convert.ToInt32(parameters[9].Value);
32            }

33            else
34            {
35                Count = 0;
36            }

37            if (parameters[10].Value != DBNull.Value && parameters[10].Value.ToString() != string.Empty)
38            {
39                PageCount = Convert.ToInt32(parameters[10].Value);
40            }

41            else
42            {
43                PageCount = 0;
44            }

45            return ds;
46        }

47

 

posted @ 2009-04-06 10:28  StevenFu  阅读(184)  评论(0)    收藏  举报