MemberController:
public ActionResult UserList()
{
UserBll userBll = new UserBll();
string keyWords = Request.GetString("keyWords").ToString("filtersql");
int userStatus = Request.GetInt("userStatus", -);
int pageIndex = Request.GetInt("pageIndex", );
int pageSize = Request.GetInt("pageSize", );
string sTime = Request.GetDateTime("Stime").ToString("filtersql");
string eTime = Request.GetDateTime("Etime").ToString("filtersql");
string mobileNum = "";
int totalCount = ;
DataTable userList = userBll.GetUser(keyWords, userStatus, pageIndex, pageSize, ref totalCount, sTime, eTime, mobileNum ); ViewBag.userList = userList;
ViewBag.TotalCount = totalCount; //是否是Ajax提交过来的数据
if (Request.IsAjaxRequest())
return PartialView("PartialPageUserList", userList);
return View(userList);
}
        /// <summary>
/// 获取用户列表
/// </summary>
/// <param name="KeyWords">关键字(手机号码、身份证号)</param>
/// <param name="MebStatus">用户状态</param>
/// <param name="pageIndex">当前页码</param>
/// <param name="pageSize">每页记录数</param>
/// <param name="totalCount">总记录数</param>
/// <returns>用户列表</returns>
public DataTable GetUser(string KeyWords, int MebStatus, int pageIndex, int pageSize, ref int totalCount, string Stime, string Etime, string mobileNumCity, string mobileOperation)
{
StringBuilder sbSqlWhere = new StringBuilder();
sbSqlWhere.Append(" 1=1 and u.UserStatus !=9");
if (KeyWords != "")
{
sbSqlWhere.AppendFormat(" and u.MobileNo like '%{0}%'", KeyWords);
}
if (MebStatus >= )
{
sbSqlWhere.Append(" and u.UserStatus =" + MebStatus);
}
if (Stime != "")
{
sbSqlWhere.Append(" and u.AddTime>=to_date('"+Convert.ToDateTime(Stime).ToString("yyyy-MM-dd HH:mm:ss")+"','yyyy-mm-dd hh24:mi:ss')");
}
if (Etime != "")
{
sbSqlWhere.Append(" and u.AddTime<to_date('"+Convert.ToDateTime(Etime).AddDays().ToString("yyyy-MM-dd HH:mm:ss")+"','yyyy-mm-dd hh24:mi:ss')");
}
string tableName = @" Meb_User u INNER JOIN Meb_Blance o ON u.UserId=o.MeberUserId ";
string fields = @" u.UserId,u.MobileNo,u.UserType,u.AddTime,u.UserStatus,o.BlancePrice"
string orderField = " u.AddTime desc ";
return commonDll.GetListByFenye(tableName, fields, pageIndex, pageSize, ref totalCount, sbSqlWhere.ToString(), orderField);
}
 public interface ICommon
{
/// <summary>
/// 查询tableName信息
/// </summary>
/// <param name="tableName">表名</param>
/// <param name="fields">字段</param>
/// <param name="pageIndex">第几页</param>
/// <param name="pageSize">大小</param>
/// <param name="count">返回个数</param>
/// <param name="strWhere">条件</param>
/// <param name="orderField">排序</param>
/// <returns>返回tableName集合</returns>
DataTable GetListByFenye(string tableName, string fields, int pageIndex, int pageSize, ref int count, string strWhere, string orderField);
}
        /// <summary>
/// 查询tableName信息
/// </summary>
/// <param name="tableName">表名</param>
/// <param name="fields">字段</param>
/// <param name="pageIndex">第几页</param>
/// <param name="pageSize">大小</param>
/// <param name="count">返回个数</param>
/// <param name="strWhere">条件</param>
/// <param name="orderField">排序</param>
/// <returns>返回tableName集合</returns>
public DataTable GetListByFenye(string tableName, string fields, int pageIndex, int pageSize, ref int count, string strWhere, string orderField)
{
OracleParameter[] parameter ={
new OracleParameter("TableName",OracleType.VarChar),
new OracleParameter("SelectFields",OracleType.VarChar),
new OracleParameter("OrderField",OracleType.VarChar),
new OracleParameter("sqlWhere",OracleType.VarChar),
new OracleParameter("pageSize",OracleType.Int32),
new OracleParameter("pageIndex",OracleType.Int32),
new OracleParameter("totalRecord",OracleType.Int32),
new OracleParameter("v_cur",OracleType.Cursor)
};
parameter[].Value = tableName;
parameter[].Value = fields;
parameter[].Value = orderField;
parameter[].Value = strWhere;
parameter[].Value = pageSize;
parameter[].Value = pageIndex;
parameter[].Direction = ParameterDirection.Output;
parameter[].Direction = ParameterDirection.Output;
DataTable dt = OracleHelper.ExecuteDataTable(CommandType.StoredProcedure, "FenYePagePro", parameter);
count = (int)parameter[].Value;
return dt;
}

存储:

CREATE OR REPLACE PROCEDURE "FENYEPAGEPRO"
(
TABLENAME IN VARCHAR2
, SELECTFIELDS IN VARCHAR2
, ORDERFIELD IN VARCHAR2
, SQLWHERE IN VARCHAR2
, PAGESIZE IN NUMBER
, PAGEINDEX IN NUMBER
, TOTALRECORD OUT NUMBER
, v_cur OUT SYS_REFCURSOR
) is strSql varchar2(20000);--获取数据的sql语句
pageCount number;--该条件下记录页数
startIndex number;--开始记录
endIndex number;--结束记录 BEGIN
strSql:='select count(1) from '||TABLENAME;
if SQLWHERE is not null or SQLWHERE<>'' then
strSql:=strSql||' where '||SQLWHERE;
end if; EXECUTE IMMEDIATE strSql INTO TOTALRECORD;
--计算数据记录开始和结束
pageCount:=TOTALRECORD/PAGESIZE+1;
startIndex:=(PAGEINDEX-1)*PAGESIZE+1;
endIndex:=PAGEINDEX*PAGESIZE; strSql:='select rownum ro,A.* from ( select '||SELECTFIELDS||' from '||TABLENAME||' '; if SQLWHERE is not null or SQLWHERE<>'' then
strSql:=strSql||' where '||SQLWHERE;
end if; if ORDERFIELD is not null or ORDERFIELD<>'' then
strSql:=strSql||' order by '||ORDERFIELD;
end if; strSql:=strSql||') A where rownum<='||endIndex; strSql:='select * from ('||strSql||') where ro >='||startIndex;
--DBMS_OUTPUT.put_line(strSql);打印SQL语句 OPEN v_cur FOR strSql;
END FENYEPAGEPRO;

.NET+MVC+ORACLE存储分页查询一后端实现的更多相关文章

  1. .NET+MVC+ORACLE存储分页查询一前端实现

    MemberList.cshtml @{    ViewBag.Title = "用户列表";    Layout = null;} <!DOCTYPE html> & ...

  2. asp.net mvc多条件+分页查询解决方案

    开发环境vs2010 css:bootstrap js:jquery bootstrap paginator 原先只是想做个mvc的分页,但是一般的数据展现都需要检索条件,而且是多个条件,所以就变成了 ...

  3. Oracle中分页查询语句

    Oracle分页查询语句使我们最常用的语句之一,下面就为您介绍的Oracle分页查询语句的用法,如果您对此方面感兴趣的话,不妨一看. Oracle分页查询语句基本上可以按照本文给出的格式来进行套用.O ...

  4. Oracle的分页查询语句优化

    Oracle的分页查询语句基本上可以按照本文给出的格式来进行套用. (一)   分页查询格式: SELECT * FROM  ( SELECT A.*, ROWNUM RN  FROM (SELECT ...

  5. Oracle 的分页查询 SQL 语句

    Oracle的分页查询语句基本上可以按照本文给出的格式来进行套用. 分页查询格式: SELECT * FROM (SELECT A.*, ROWNUM RN FROM (SELECT * FROM T ...

  6. Oracle 数据库分页查询的三种方法

    一.Oracle 数据库分页查询的三种方法 1.简介 不能对 rownum 使用 >(大于或等于 1 的数值).>=(大于 1 的数值).=(不等于 1 的数值),否则无结果.所以直接用 ...

  7. oracle 的分页查询与mysql 的分页查询

    oracle 的分页查询: select * from (select o.*,rownum rn  from Persons o) where rn >40 and rn <=60 : ...

  8. mysql、sql server、oracle数据库分页查询及分析(操作手册)

    1.mysql分页查询 方式1: select * from table order by id limit m, n; 该语句的意思为,查询m+n条记录,去掉前m条,返回后n条记录.无疑该查询能够实 ...

  9. oracle高效分页查询总结

    本文参考链接:http://blog.sina.com.cn/s/blog_8604ca230100vro9.html 探索查询语句: --分页参数:size = 20 page = 2 --没有or ...

随机推荐

  1. 020 Spark中分组后的TopN,以及Spark的优化(重点)

    一:准备 1.源数据 2.上传数据 二:TopN程序编码 1.程序 package com.ibeifeng.bigdata.spark.core import java.util.concurren ...

  2. 062 hive中的常用方法(case,cast,unix_timestamp)

    1.case的用法 )格式1 case col when value then '' when value then '' else '' end )格式2 case when col='value' ...

  3. 037 对于HIVE架构的理解

    0.发展 在hive公布源代码之后 公司又公布了presto,这个比较快,是基于内存的. impala:3s处理1PB数据. 1.Hive  能做什么,与 MapReduce 相比优势在哪里 关于hi ...

  4. VUE 打包后关于 -webkit-box-orient: vertical; 消失,导致多行溢出不管用问题

    VUE 打包后 -webkit-box-orient: vertical; 样式消失,导致页面样式爆炸,看了看解决方案,在这里总结一下: 实际上是 optimize-css-assets-webpac ...

  5. 获取运行端口监听的用户身份auth-owner

    获取运行端口监听的用户身份auth-owner   Windows系统提供工作在TCP 113端口的授权服务(Authentication Service),用来判断TCP连接的用户.Nmap的aut ...

  6. android monitor 汉化 ddms

    作者:韩梦飞沙 Author:han_meng_fei_sha 邮箱:313134555@qq.com E-mail: 313134555 @qq.com android.jar\com\androi ...

  7. BZOJ.2834.回家的路(最短路Dijkstra 拆点)

    题目链接 对于相邻的.处在同在一行或一列的车站连边,然后用dis[x][0/1](或者拆点)分别表示之前是从横边还是竖边到x的,跑最短路. 我选择拆点.. //13028kb 604ms #inclu ...

  8. POJ.2728.Desert King(最优比率生成树 Prim 01分数规划 二分/Dinkelbach迭代)

    题目链接 \(Description\) 将n个村庄连成一棵树,村之间的距离为两村的欧几里得距离,村之间的花费为海拔z的差,求花费和与长度和的最小比值 \(Solution\) 二分,假设mid为可行 ...

  9. bzoj 2013 上升计数

    题意: 给一个数集和一个数d,问满足下列要求的排列数(相同的数要区分):  a[i]+d>=a[i+1] ( i in [1,n) ) 因为数的给出顺序不重要,所以先排序,假如我们已经解决了前i ...

  10. aps.net手写验证模型的方法

    /// <summary> /// 基础验证类 /// </summary> public class BaseValidator { /// <summary> ...