项目中不可缺少的分页查询方法
来源:互联网 发布:prisma软件下载 编辑:程序博客网 时间:2024/04/30 12:37
分页查询,每个项目里必不可少的,封装好的方法在网上也是很多的,不管是B/S还是C/S项目,底层的方法写的都是大同小异的,所以为了提高效率,我们总是将最快的实现方法拿过来。
因为公司之前项目比较紧,分页查询的功能也是最后才实现的,所以底层的方法直接找了一个现成的用,直接把现在重构,所以自己动手写了个分页查询的底层方法。
此处只介绍底层的分页方法,客户端的代码不多做介绍。
这里有两个方法,第二个方便可以说是第一个方法的扩展了。我用的数据库时Oracle数据库,SQLServer和他大同小异,读者自己理会。
直接上代码:
public static DataSet ExecuteDataset(String connectionString, CommandType commandType,string commandText, int PageSize, int CurrentPageIndex) { DataSet DataSet; //打开Oracle数据连接 using (OracleConnection connection = new OracleConnection(connectionString)) { connection.Open(); OracleCommand command=new OracleCommand (); bool flag = false; PrepareCommand(command, connection, null, commandText, null); using (OracleDataAdapter adapter = new OracleDataAdapter(command)) { DataSet dataSet = new DataSet(); int startRecord = PageSize * (CurrentPageIndex - 1); int maxRecords = PageSize; adapter.Fill(dataSet, startRecord, maxRecords, "currentPage"); command.Parameters.Clear(); if (flag) { connection.Close(); } DataSet = dataSet; } } return DataSet; } public static DataSet ExecuteDataset1(OracleConnection connection, CommandType commandType, string commandText, int PageSize, int CurrentPageIndex, params OracleParameter[] commandParameters) { if (connection == null) { throw new ArgumentNullException("connection"); } OracleCommand command = new OracleCommand(); bool flag = false; PrepareCommand(command, connection, null, commandText, commandParameters); using (OracleDataAdapter adapter = new OracleDataAdapter(command)) { DataSet dataSet = new DataSet(); int startRecord = PageSize * (CurrentPageIndex - 1); int maxRecords = PageSize; adapter.Fill(dataSet, startRecord, maxRecords, "currentPage"); command.Parameters.Clear(); if (flag) { connection.Close(); } return dataSet; } }
<pre name="code" class="csharp">private static void PrepareCommand(OracleCommand cmd,OracleConnection conn,OracleTransaction trans , string cmdText, OracleParameter[] cmdParms) {if (conn.State != ConnectionState.Open) //如果是关闭状态则打开conn.Open();cmd.Connection = conn;cmd.CommandText = cmdText;if (trans != null)cmd.Transaction = trans;cmd.CommandType = CommandType.Text;//cmdType;if (cmdParms != null) {foreach (OracleParameter parm in cmdParms)cmd.Parameters.Add(parm);}}
底层方法写好了,我们就可以调用了,发现这个方法效率不是很高,查询速度相对来说有些慢,程序员编码不是只讲究一个功能实现,还要讲究效率,这个效率问题可是我们必须要考虑的问题。
不过目前我还没有优化成功,优化完了再继续总结吧。
1 0
- 项目中不可缺少的分页查询方法
- mp3中不可缺少的音乐
- 商城项目中商品的分页查询
- 你的人脉关系中 绝对不可缺少的十种人
- 你的人脉关系中 绝对不可缺少的十种人
- 你的人脉关系中 绝对不可缺少的十种人
- 生命中不可缺少的100本书
- 讲解数据库结构中不可缺少的交易日志
- 情感——网络教育中不可缺少的组成部分
- 最近项目中用hibernate分页查询的底层方法
- 最近项目中用hibernate分页查询的底层方法
- Java分页查询中分页的分页
- 在SYBASE中进行分页查询的方法
- [ssh]关于ssh中查询并分页方法的记录
- Java的分页查询方法
- 数据库分页查询的方法
- Mysql分页查询的方法
- 【工具分享】【开源项目】《IE脚本辅助》--IE脚本开发不可缺少的工具。
- EX4.7
- 文章标题
- Linux指令_文件处理工具sed
- 【Smart OJ P2485】Sum of product 简单数学
- pythony文件操作编码问题
- 项目中不可缺少的分页查询方法
- 内核同步机制的一些见解(未完成)
- MySQL运行状态show status中文详解
- javascript入门
- 女同学下个月待产
- 框架使用java反射好处
- 安卓弹出框popupwindow及其透明效果小结
- CSDN学院讲师韦东山:悦己之作,方能悦人
- 面试中的自我介绍