存储过程分页

SQL存储过程分页查询

CREATE PROCEDURE proc_Page 
@Table VARCHAR(100), --表名 
@Primarykey VARCHAR(100), --主键 
@Condition VARCHAR(500), --查询条件 
@PageNumber INT, --开始页数 
@PageSize INT, --每页大小 
@IsCount BIT --是否获得记录数,0为否 
AS 
  DECLARE @SQL VARCHAR(8000) 
  IF @IsCount != 0 
  SET @SQL = 'SELECT Count(*) FROM ' + @Table + ' WHERE ' + @Condition 
  ELSE 
  BEGIN 
  IF @PageNumber = 1 
  SET @SQL = 'SELECT TOP ' + STR(@PageSize) + ' SerialNum AS 流水号,PatientName AS 病人姓名,CheckDate AS 检查日期 FROM ' + @Table + ' WHERE ' + @Condition 
  ELSE 
  SET @SQL = 'SELECT TOP ' + STR(@PageSize) + ' SerialNum AS 流水号,PatientName AS 病人姓名,CheckDate AS 检查日期 FROM ' + @Table + 
  ' WHERE ' + @Primarykey + ' NOT IN (SELECT TOP ' + STR(@PageSize*(@PageNumber - 1)) 
+ ' ' + @Primarykey + ' FROM ' + @Table + ' WHERE ' + @Condition + ') AND ' + @Condition 
  END 
  EXEC(@SQL) 
RETURN

调用函数
public static DataTable GetPatientInfo(string Condition, string StoreProcedure, int pageNumber, int PageSize, int isCount)
  {
  SqlParameter[] sqlParameter = 
  { 
  new SqlParameter("@Table","CheckRecord"), 
  new SqlParameter("@Primarykey","SerialNum"), 
  new SqlParameter("@Condition",Condition), 
   
  new SqlParameter("@PageNumber",pageNumber), 
  new SqlParameter("@PageSize",PageSize), 
  new SqlParameter("@IsCount",isCount) 
  };
  using (SqlConnection sqlConnection = new SqlConnection(WebConfig.ConnectionString))
  {
  try
  {
  sqlConnection.Open();
  SqlCommand sqlcommand = new SqlCommand(StoreProcedure, sqlConnection);
  sqlcommand.CommandType = CommandType.StoredProcedure;
  sqlcommand.Parameters.AddRange(sqlParameter);
  SqlDataAdapter sqlDataAdapter = new SqlDataAdapter();
  sqlDataAdapter.SelectCommand = sqlcommand;
  DataTable dt = new DataTable();
  sqlDataAdapter.Fill(dt);
  return dt;
  }
  catch (SqlException ex)
  {
  throw ex;
  }
  catch (Exception ex)
  {
  throw ex;
  }
  }
  }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值