SQL存储过程分页
在C#DAL层中的代码
1
public 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
public 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)>98
new SqlParameter("@Order", SqlDbType.VarChar,2000),//排序 不含'order by'字符,如id asc,userid desc,必须指定asc或desc9
//注意当@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
else34
{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
else42
{43
PageCount = 0;44
}45
return ds;46
}47




SqlParameter[] parameters
浙公网安备 33010602011771号