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. python的os模块总结

    python的os模块总结 目录 常用方法和属性总结 文件操作 目录操作 常用方法和属性总结 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir(&quo ...

  2. 机器学习数据处理时label错位对未来数据做预测

    这篇文章继上篇机器学习经典模型简单使用及归一化(标准化)影响,通过将测试集label(行)错位,将部分数据作为对未来的预测,观察其效果. 实验方式 以不同方式划分数据集和测试集 使用不同的归一化(标准 ...

  3. Mybatis Generator xml格式配置

    Mybatis Generator可以使用Maven方式和Java方法,使用Maven这里是配置文件: <?xml version="1.0" encoding=" ...

  4. MySQL数据库crash的问题分析

    [问题] 生产环境有多台slave服务器,不定期的会crash,下面是error log中的堆栈信息 Thread pointer: 0x7f1e54b26410 Attempting backtra ...

  5. 洛谷.3809.[模板]后缀排序(后缀数组 倍增) & 学习笔记

    题目链接 //输出ht见UOJ.35 #include<cstdio> #include<cstring> #include<algorithm> const in ...

  6. phpstorm在项目中查找某个字符串

    如果项目过大,想在整个项目中找某个字符串,又不知道该字符串所在文件的路径,这时候就可以使用全局搜索了,ctrl+shift+F.在mac下,快捷键是command+shift+F:    

  7. openvpn 的安装和使用方法

    一.安装: 必备条件: 该计算机必须安装了网卡 1.像安装普通软件一样将 openvpn 这个软件安装好 2.到安装目录下/config 中,该目录下默认只有一个 README.txt,然后将企业给的 ...

  8. 吴伯凡:VUCA时代的自我迭代

    吴伯凡:VUCA时代的自我迭代 https://mp.weixin.qq.com/s?src=3&timestamp=1506588223&ver=1&signature=nv ...

  9. 关于ADO.Net SqlConnection的性能优化

    Connections Database connections are an expensive and limited resource. Your approach to connection ...

  10. VC在线程中操作界面

    http://blog.csdn.net/tingsking18/article/details/4399199 多线程是我们在编程中经常遇到的问题,线程执行完后往往要把执行的结果传给主线程,但是MF ...