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;
    }
    }
  • 相关阅读:
    spring cloud 学习(Gateway)网关
    spring cloud 学习(Hystrix)熔断器
    spring cloud 学习(Feign)分布式配置中心
    老子道德经-帛书甲本
    重新执行mysql索引
    有关maven2路径
    关于Mysql含有blob字段的查询效率问题
    提交Json参数到Tomcat报400错误的问题
    不知道算不算mysql的漏洞
    JFinal项目中,如何连接两个不同版本的mysql数据库?
  • 原文地址:https://www.cnblogs.com/pipizhu/p/1713524.html
Copyright © 2011-2022 走看看