博客
关于我
GridView的另外一种分页方式,可提高加载速度
阅读量:581 次
发布时间:2019-03-11

本文共 881 字,大约阅读时间需要 2 分钟。

如何优化GridView的加载速度?本文探讨如何在服务器端处理分页,并结合客户端优化策略,实现更快的数据加载。

1. 服务器端分页处理

使用Oracle的存储过程或分页函数来在数据库层进行分页,这样可以减少客户端的数据处理负担。以下是优化步骤:

  • 使用存储过程:编写一个存储过程,接受起始和结束行号参数,返回指定范围内的数据。存储过程内部使用Oracle的DBMS_RowInts函数进行分页处理。
  • 返回数据集:存储过程返回一个REFCursor,客户端可以通过DataReader来逐行读取数据。
  • 优化查询:确保查询使用适当的索引,减少I/O时间。

2. 客户端优化策略

在获取数据后,如何高效地将DataReader数据填充到DataTable中:

  • 减少不必要的循环:直接使用DataAdapter填充DataTable,避免手动读取每一行。
  • 使用缓存:在Grid中缓存数据,减少重复查询。
  • 优化DataReader:确保DataReader在读取完成后及时关闭,释放资源。

3. 综合优化方法

结合服务器端和客户端优化,使用ORM框架如Entity Framework的分页功能。EF通过生成SQL语句进行分页,减少客户端代码量,并优化数据库性能。

4. 实现步骤

  • 服务器端:

    • 编写存储过程实现分页。
    • 调用存储过程并返回结果集。
  • 客户端:

    • 使用DataReader读取结果集。
    • 使用DataAdapter填充DataTable。
    • 绑定DataTable到GridView。
  • 5. 代码优化

    public static DataTable DataReaderToDataTable(SqlCommand cmd, SqlDataReader dr){    DataTable dt = new DataTable();    dt.Load(dr);    dr.Close();    return dt;}

    6. 结论

    通过服务器端分页和客户端优化,可以显著提升GridView的加载速度。结合存储过程和ORM框架,实现高效且可扩展的数据分页解决方案。

    转载地址:http://pulvz.baihongyu.com/

    你可能感兴趣的文章
    python3爬虫抓取智联招聘职位信息代码
    查看>>
    Python3爬虫数据入数据库---把爬取到的数据存到数据库,带数据库去重功能
    查看>>
    python3的 pymysql把mysqldb库取代了,让python 3支持mysqldb的解决方法
    查看>>
    Python3笔记——IDE的选择
    查看>>
    python3简单使用requests 用户代理,cookie池
    查看>>
    Python3组播通信编程实现教程(发送者+接收者)
    查看>>
    Python3编写网络爬虫10-数据存储方式三-CSV文件存储
    查看>>
    python3读取redis返回数据带有'b'的问题
    查看>>
    Python3连接MySQL
    查看>>
    Python关于isinstance函数的解析 | 附Demo(全)
    查看>>
    Python3:setup.py:完成所有任务的PIP安装(Build_ext+Install)
    查看>>
    python4.0 gil_Python 并发编程系列--1、浅谈GIL历史及对多线程的影响
    查看>>
    python60行绘图程序_天底下最简单的QT画图板,就一个类,60行代码
    查看>>
    Python: AES加密与解密
    查看>>
    Python: Range() 最大尺寸;动态的还是静态的?
    查看>>
    Python: Windows下用 multiprocessing 的深坑
    查看>>
    python:Could not find platform independent libraries <prefix>解决方法
    查看>>
    Python:datetime tzinfo 时区名称文档
    查看>>
    Python:deepcopy(list) vs new_list = old_list[:]
    查看>>
    Python:Google API - 从消息中获取 mimeTypes
    查看>>