博客
关于我
GridView的另外一种分页方式,可提高加载速度
阅读量:580 次
发布时间: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/

    你可能感兴趣的文章
    Orleans框架------基于Actor模型生成分布式Id
    查看>>
    SQL-36 创建一个actor_name表,将actor表中的所有first_name以及last_name导入改表。
    查看>>
    ORM sqlachemy学习
    查看>>
    Ormlite数据库
    查看>>
    orm总结
    查看>>
    os.environ 没有设置环境变量
    查看>>
    os.path.join、dirname、splitext、split、makedirs、getcwd、listdir、sep等的用法
    查看>>
    os.removexattr 的 Python 文档——‘*‘(星号)参数是什么意思?
    查看>>
    os.system 在 Python 中不起作用
    查看>>
    OS2ATC2017:阿里研究员林昊畅谈操作系统创新与挑战
    查看>>
    OSCACHE介绍
    查看>>
    SQL--合计函数(Aggregate functions):avg,count,first,last,max,min,sum
    查看>>
    OSChina 周五乱弹 ——吹牛扯淡的耽误你们学习进步了
    查看>>
    SQL--mysql索引
    查看>>
    OSChina 周四乱弹 ——程序员为啥要买苹果手机啊?
    查看>>
    OSChina 技术周刊第十期,每周技术抢先看!
    查看>>
    OSError: no library called “cairo-2“ was foundno library called “cairo“ was foundno library called
    查看>>
    OSError: [WinError 193] %1 不是有效的 Win32 应用程序。
    查看>>
    OSGi与Maven、Eclipse PlugIn的区别
    查看>>
    Osgi环境配置
    查看>>