zoukankan      html  css  js  c++  java
  • c#下oracle分页方法

    上次在网上抄的oracle分页存储过程不好使--~!,只能主键排序

    无奈我写不出那么复杂的存储过程。。。用程序凑吧o(∩_∩)o :

    /// <summary>
    /// 分页绑定
    /// </summary>
    /// <param name="table">表名</param>
    /// <param name="where">要加载的条件</param>
    /// <param name="column">查询的列,比如:*或者code,name</param>
    /// <param name="order">排序字段,比如:code desc或者code asc</param>
    /// <param name="mPageSize">每页大小</param>
    /// <param name="mPageIndex">查询第几页</param>
    /// <param name="recount">out形式参数,返回记录总数</param>
    /// <returns>返回的是游标形式的数据集</returns>
    public static DataSet PageBind(string table, string where, string column, string order, int mPageSize, int mPageIndex,out int recount)
    {
    StringBuilder sb
    = new StringBuilder(57);

    sb.Append(
    "select count(1) from " + table);

    if (where.Length > 0)
    {
    sb.Append(
    " where " + where);
    }

    object _o = ExecuteSql_obj(sb.ToString());

    recount
    = Convert.ToInt32(_o);

    sb
    = new StringBuilder(500);

    sb.Append(
    " select * from ( select temp_b.*,rownum rk from (select " + column + " from " + table);

    if (where.Length > 0)
    {
    sb.Append(
    " where " + where);

    }
    if (order.Length > 0)
    {
    sb.Append(
    " order by " + order);
    }

    sb.Append(
    " ) temp_b where rownum<" + (mPageIndex * mPageSize + 1) + ") s where s.rk> " + mPageSize * (mPageIndex - 1));

    DataSet ds
    = null;

    ds
    = Query(sb.ToString());

    return ds;
    }
    /// <summary>
    /// 执行查询语句,返回DataSet
    /// </summary>
    /// <param name="SQLString">查询语句</param>
    /// <returns>DataSet</returns>
    public static DataSet Query(string SQLString)
    {
    using (OracleConnection connection = new OracleConnection(connectionString))
    {
    DataSet ds
    = new DataSet();
    try
    {
    connection.Open();
    OracleDataAdapter command
    = new OracleDataAdapter(SQLString, connection);
    command.Fill(ds,
    "ds");
    }
    catch (System.Data.OracleClient.OracleException ex)
    {
    throw new Exception(ex.Message);
    }
    return ds;
    }
    }
  • 相关阅读:
    javascript 去掉 url 中的不可打印字符串
    双链表 哈希 go 实现lFU 缓存算法
    博客园嵌入背景音乐
    博客园嵌入B站视频教程
    基于C++二叉树链表实现同学录信息系统
    C++ 二叉树知识点
    datatable 自定义排序 及 多列排序
    jq 提取字符串中的数字
    wamp下thinkPHP3.2 系统不支持:redis 解决方法
    editable文档
  • 原文地址:https://www.cnblogs.com/pipizhu/p/1713524.html
Copyright © 2011-2022 走看看