datareader分页
来源:互联网 发布:linux 文件读权限 编辑:程序博客网 时间:2024/06/05 09:55
项目中有对未知数据源获取数据用于展示的需求,用dapper和datareader来分页,处理起来比较方便些。
c#方法:
public object View(string dbLinkId, int rows = 0, int page = 0) { Models.DBC.DataLink.DataLink info = Get(dbLinkId); Models.Integrate.DataBase dbsrc = new Integrate.DBSrcImpl().Get(info.DbsrcId) as Models.Integrate.DataBase; DynamicParameters p; string sql = getSql(dbLinkId, dbsrc, out p); int start = 0; if (page == 0) { page = 1; } if (rows == 0) { rows = 20; } start = (page - 1) * rows; int end = start + rows; int totalCount = 0; try { using (DbConnection conn = DapperFactory.CreateConnection(dbsrc)) { string countsql = string.Format("select count(0) from({0})t", sql); int count = conn.ExecuteScalar<int>(countsql, p); DataTable dt = new DataTable(); IDataReader reader = conn.ExecuteReader(sql, p); for (int i = 0; i < reader.FieldCount; i++) { dt.Columns.Add(reader.GetName(i)); } while (reader.Read()) { totalCount++; if (totalCount > end) break; if (totalCount >= start && totalCount <= end) { DataRow r = dt.NewRow(); for (int i = 0; i < reader.FieldCount; i++) { r[i] = reader[i]; } dt.Rows.Add(r); } } return Common.DataGrid(dt, count);//转成easyui datagrid数据源格式 } } catch (Exception e) { throw new Exception(string.Format("查询源数据库出错<br>原因:{0}<br>sql语句:{1}", e.Message, sql)); } }
js:
function getdata(id,r,p) { var rows = 50; var page = 1; if (r) rows = r; if (p) page = p; $.post('/dblink/ListView', { id: id, rows: rows, page: page }, function (data) { accecpResult(data, function () { var ds = data.data.rows; var columns = [[]]; if (ds.length > 0) { for (var key in ds[0]) { columns[0].push({ field: key, title: key }); } } tab_view.datagrid({ data: data.data, rownumbers: true, singleSelect: true, striped: true, fit: true, border: false, pagination: true, pageSize: 50, columns: columns }); var p = tab_view.datagrid('getPager'); (p).pagination({ pageNumber: page, beforePageText: '第', afterPageText: '页 共 {pages} 页', displayMsg: '共{total}条数据', onSelectPage: function (pageNumber, pageSize) { getdata(id, pageSize, pageNumber); } }); }) }) }
阅读全文
0 0
- datareader分页
- DataReader也玩超酷数据显示分页
- DataReader也玩超酷数据显示分页
- DataReader也玩超酷数据显示分页
- DataReader也玩超酷数据显示分页
- DataReader也玩超酷数据显示分页
- ASP.NET极速DataReader分页程序
- datareader
- DataReader
- DataReader
- DataReader分页 与 SQL三种分页方式 - Junval
- [ASP.NET2.0]如何利用 DataReader 实现分页
- ASP.NET极速DataReader分页程序 - Gerry的专栏 - CSDNBlog
- CSDN技术中心 DataReader也玩超酷数据显示分页
- 用DataReader 分页与几种传统的分页方法的比较
- 用DataReader 分页与几种传统的分页方法的比较 [转]
- 用DataReader 分页与几种传统的分页方法的比较
- 用DataReader 分页与几种传统的分页方法的比较
- 第三周项目1 顺序表的基本运算
- C# dateTimePiacker 与ACCESS中日期/时间 的列比较的问题 已解决
- Spark Programming Guide(二)
- I2C总线
- js基础-语法
- datareader分页
- 用C++实现快排(思路+代码)
- 未能加载文件或程序集 Newtonsoft.Json, Version=4.5.0.0 的报错,解决方法
- 【kong系列十一】之JWT插件RSA256非对称加密使用
- Unity5.x新依赖打包及加载
- oracle之数据库事务的边界(DML,DDL,DCL)
- Socket心跳包保持长连接
- 设置背景图片的两种方式,并解决手机端背景图片高度自适应问题
- JAVA 模拟瞬间高并发