zoukankan      html  css  js  c++  java
  • 存储过程参数输入输出

    create procedure proc_page_withtopmax
    (
    @pageIndex int,--页索引
    @pageSize int,--每页显示数
    @pageCount int output,--总页数,输出参数 
    @totalCount int output--总条数
    )
    as
    begin
    set nocount on;
    
    declare @sql nvarchar(1000)
    set @sql='select top 10 * from tb_testtable where (id> (select max(id) from (select top '+str((@pageIndex-1)*@pageSize)+' id from tb_testtable order by id) as temp)) order by id'
    execute(@sql)
    
    declare @sqlRecordCount nvarchar(1000) --得到总记录条数的语句
    set @sqlRecordCount=N'select @recordCount=count(*) from tb_testtable' 
    declare @recordCount int --保存总记录条数的变量
    exec sp_executesql @sqlRecordCount,N'@recordCount int output',@recordCount output
    
    if( @recordCount % @pageSize = 0) --如果总记录条数可以被页大小整除 
    set @pageCount = @recordCount / @pageSize --总页数就等于总记录条数除以页大小 
    else --如果总记录条数不能被页大小整除 
    set @pageCount = @recordCount / @pageSize + 1 --总页数就等于总记录条数除以页大小加1
    
    set @totalCount = @recordCount
    
    set nocount off;
    end
    
    --数据库中执行该存储过程
    declare @pageCount int, @totalCount int
    
    exec proc_page_withtopmax 2,95955,@pageCount output,@totalCount output
    
    select '总页数:'+str(@pageCount)
    select '总条数:'+str(@totalCount)
    
     
    
    C# 代码调用该带输入输出参数的分页存储过程
    
     
    
    public static DataSet GetRecordByPage( int pageSize, int pageIndex, out int pageCount, out int totalCount)
    {
    DataSet ds = new DataSet();
    try
    {
    using (SqlConnection conn = new SqlConnection(@"server=;database=data_test;uid=; pwd=;"))
    {
    SqlCommand cmd = new SqlCommand();
    cmd.Connection = conn;
    cmd.Parameters.Add(new SqlParameter("@pageSize", SqlDbType.Int));
    cmd.Parameters.Add(new SqlParameter("@pageIndex", SqlDbType.Int));
    SqlParameter param = new SqlParameter("@totalCount", SqlDbType.Int);
    param.Direction = ParameterDirection.Output;
    cmd.Parameters.Add(param);
    
    SqlParameter param1 = new SqlParameter("@pageCount", SqlDbType.Int);
    param1.Direction = ParameterDirection.Output;
    cmd.Parameters.Add(param1);
    
    cmd.Parameters[0].Value = pageSize;
    cmd.Parameters[1].Value = pageIndex;
    cmd.Parameters[2].Value = 0;
    cmd.Parameters[3].Value = 0;
    
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.CommandText = "proc_page_withtopmax";
    cmd.CommandTimeout = 180;
    
    SqlDataAdapter adapter = new SqlDataAdapter();
    adapter.SelectCommand = cmd;
    
    DataSet source = new DataSet();
    adapter.Fill(ds);
    
    object o = cmd.Parameters["@totalCount"].Value;
    totalCount = (o == null || o == DBNull.Value) ? 0 : System.Convert.ToInt32(o);
    
    object b = cmd.Parameters["@pageCount"].Value;
    pageCount = (b == null || o == DBNull.Value) ? 0 : System.Convert.ToInt32(b);
    }
    }
    catch (SqlException e)
    {
    throw e;
    }
    return ds;
    }
    
    }
     
  • 相关阅读:
    克隆用户过狗提权
    一个JS引发的血案
    python-标识符(Identifiers)和关键字(keywords)
    提取nmap扫描出来的xml文件
    Hydra扫描姿势
    Senparc.Weixin.MP SDK 微信公众平台开发教程(十二):OAuth2.0说明
    Senparc.Weixin.MP SDK 微信公众平台开发教程(十一):高级接口说明
    Senparc.Weixin.MP SDK 微信公众平台开发教程(十):多客服接口说明
    Senparc.Weixin.MP SDK 微信公众平台开发教程(九):自定义菜单接口说明
    Senparc.Weixin.MP SDK 微信公众平台开发教程(八):通用接口说明
  • 原文地址:https://www.cnblogs.com/ChineseMoonGod/p/4663717.html
Copyright © 2011-2022 走看看