.NET+MVC+ORACLE存储分页查询一后端实现
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存储分页查询一后端实现的更多相关文章
- .NET+MVC+ORACLE存储分页查询一前端实现
MemberList.cshtml @{ ViewBag.Title = "用户列表"; Layout = null;} <!DOCTYPE html> & ...
- asp.net mvc多条件+分页查询解决方案
开发环境vs2010 css:bootstrap js:jquery bootstrap paginator 原先只是想做个mvc的分页,但是一般的数据展现都需要检索条件,而且是多个条件,所以就变成了 ...
- Oracle中分页查询语句
Oracle分页查询语句使我们最常用的语句之一,下面就为您介绍的Oracle分页查询语句的用法,如果您对此方面感兴趣的话,不妨一看. Oracle分页查询语句基本上可以按照本文给出的格式来进行套用.O ...
- Oracle的分页查询语句优化
Oracle的分页查询语句基本上可以按照本文给出的格式来进行套用. (一) 分页查询格式: SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT ...
- Oracle 的分页查询 SQL 语句
Oracle的分页查询语句基本上可以按照本文给出的格式来进行套用. 分页查询格式: SELECT * FROM (SELECT A.*, ROWNUM RN FROM (SELECT * FROM T ...
- Oracle 数据库分页查询的三种方法
一.Oracle 数据库分页查询的三种方法 1.简介 不能对 rownum 使用 >(大于或等于 1 的数值).>=(大于 1 的数值).=(不等于 1 的数值),否则无结果.所以直接用 ...
- oracle 的分页查询与mysql 的分页查询
oracle 的分页查询: select * from (select o.*,rownum rn from Persons o) where rn >40 and rn <=60 : ...
- mysql、sql server、oracle数据库分页查询及分析(操作手册)
1.mysql分页查询 方式1: select * from table order by id limit m, n; 该语句的意思为,查询m+n条记录,去掉前m条,返回后n条记录.无疑该查询能够实 ...
- oracle高效分页查询总结
本文参考链接:http://blog.sina.com.cn/s/blog_8604ca230100vro9.html 探索查询语句: --分页参数:size = 20 page = 2 --没有or ...
随机推荐
- Bmob后端云使用步骤
1.登录创建应用后得到id 2.在清单文件中添加权限 <uses-sdk android:minSdkVersion="8" android:targetSdkVersion ...
- Burp Suite之截断代理功能及相关设置(一)
Burpsuite 1.burpsuite 简介2.设置代理3.Target4.爬网模块5.扫描模块6.扩展模块7.intrude8.Repeater9.Sequencer10.Decoder11.C ...
- C语言上机练习二
#include<stdio.h> int main() { int a,b; while(~scanf("%d%d",&a,&b)) printf(& ...
- php插入上万条mysql数据最快的方法
1.使用thinkphp框架 先生成包含所有数据的数组,再使用 addAll() 方法,插入1万条数据仅需3秒钟. 2.PHP原始方法: 将SQL语句进行拼接,使用 insert into table ...
- windows系统,添加网络位置向导。
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha ============ 创建一个文件夹 共享. 共享位置 ,文件夹 图标 修改. 分组 ...
- 洛谷.4717.[模板]快速沃尔什变换(FWT)
题目链接 https://www.mina.moe/archives/7598 //285ms 3.53MB #include <cstdio> #include <cctype&g ...
- 10.30 正睿停课训练 Day12
目录 2018.10.30 正睿停课训练 Day12 A 强军战歌(DP 树状数组 容斥) B 当那一天来临(思路) C 假如战争今天爆发(贪心) 考试代码 B C 2018.10.30 正睿停课训练 ...
- BZOJ.1935.[SHOI2007]Tree园丁的烦恼(CDQ分治 三维偏序)
题目链接 矩形查询可以拆成四个点的前缀和查询(树套树显然 但是空间不够) 每个操作表示为(t,x,y),t默认有序,对x分治,y用树状数组维护 初始赋值需要靠修改操作实现. //119964kb 43 ...
- 处理全站请求编码,无论是GET还是POST,默认是UTF-8
1.java类: import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;imp ...
- libctemplate——源码分析
前言 在阅读此文章前,建议先阅读我之前写的<libctemplate——C语言模块引擎简介及使用>,以便对这个库有一个初步的认识.通过对库的代码阅读,对库有了一定的认识,提练一些重要的知识 ...