APP下载

基于ASP.NET的控件数据分页技术优化

2019-09-10郑爱玲庄元裕南琳

赤峰学院学报·自然科学版 2019年5期

郑爱玲 庄元裕 南琳

摘要:网页页面访问速度是Web程序性能的一项重要指标,高效的数据分页技术可以提高页面访问速度.这里分析了GridView控件分页的实现过程、分析了GridView控件绑定SQL数据库及GridView控件绑定LINQ To SQL数据库两种数据分页技术,在综合比较这两种数据分页技术的性能及优缺点的基础上,得出后者安全性更强访问速度更快的结论,并对一个实际应用场景的应用效果进行了探讨.

关键词:数据分页;GridView控件;SQL;LINQ To SQL

中图分类号:TP393  文献标识码:A  文章编号:1673-260X(2019)05-0033-03

ASP.NET是Web应用开发的主流技术之一.在使用ASP.NET的Web应用程序中,为了提升数据库查询效果,普遍采用分页技术显示查询结果.选择不同的连接控件及配套数据库对查询效率产生不同的效果,当前主流观点认为GridView控件绑定SQL数据库可快速实现数据分页,灵活方便.综合以上观点及多年的实践与分析,提出了GridView控件绑定LINQ To SQL数据库实现数据分页的方法,能大幅度提高分页查询效率.

1 GridView控件

在ASP.NET自带分页的控件中,GridView控件具有使用简单、容易控制、集成功能较多和开发速度较快的特性,它是一个多功能的控件,支持数据自动分页、排序、编辑、删除和选择[1].以表格化格式显示GridView控件的数据,每行表示一条记录,每列表示一个字段,GridView对象中用Rows属性表示行集合,用Columns属性表示列集合,用PagerTemplate属性可以自定义用户导航页面.实现分页的过程是:在GridView控件的属性面板中设定允许分页AllowPaging属性为True,默认值为False,设定PageSize属性一个页面上的记录数,默认值为10;将数据源绑定到GridView对象中;触发GridView对象的PageIndexChanging事件,可显示分页中的数据.这种数据分页灵活方便,也是开发人员所喜爱的.

2 GridView控件绑定SQL实现数据分页

使用GridView控件绑定SQL Server数据库实现数据分页在ASP.NET开发的Web应用程序中是目前最常用的一种方法..NET框架设计了数据访问对象模型ADO.NET,ADO.NET提供了一套访问数据库或者XML数据源的类库[1].ADO. NET有OLEDB、Oracle、SQL Server、ODBC四个数据提供者,System. Data. SqlClient命名空间中包含了访问 SQL Server数据库的类,可以快速、健壮和可靠地访问SQL Server.在Web应用程序中引用数据库的过程:数据库连接用SqlConnection对象;数据库中读取数据用SqlDataAdapter对象或Sqlcommand对象;将执行后的数据填充到DataSet对象中,GridView控件的数据源就是填充后的DataSet数据集.

GridView控件绑定SQL Server数据库实现数据分页的优点是:编程效率高,可以提高查询效率.它的缺点是:在SQL语句有错误的时候,不能及时发现,等到运行时才提示错误;只有精通SQL语句的程序员,才能写出高效率代码.

3 GridView控件綁定LINQ To SQL实现数据分页

3.1 LINQ技术

LINQ是Language-Integrated Query英文缩写,语言集成查询,具有统一的语法,可以查询多种异构数据源,而且不用理会异构数据源之间的差异.它与.NET编程语言进行了高度集成,在很大程度上简化了数据查询的编码和调试工作,还可以方便地对内存中的信息进行查询[2].LINQ技术主要包含三大分支,LINQ To Objents:主要用于操作内存中的集合数据;LINQ To XML:主要针对XML结构的数据查询;LINQ Enabled ADO.NET:主要针对关系型数据库中的对象-关系模型的数据查询,目前只支持SQL Server数据库中的数据,该技术也包含三个分支,分别是LINQ To SQL、LINQ To DataSet和LINQ To Entities.

3.2 LINQ To SQL

LINQ To SQL技术可快速构建数据操作层,将关系型数据库模型映射到开发环境语言所描述的对象模型,通过使用对象模型来实现数据库的基本操作.当程序执行时,会将LINQ操作命令转换成等效的标准SQL语句,再将标准SQL语句发送到数据库进行执行,数据库会返回执行命令后的数据集[3].LINQ to SQL将返回数据集转化为一个大的集合, 在这个集合上执行LINQ操作命令,同时LINQ to SQL 也会将数据集转换成开发环境语言能处理的对象.LINQ to SQL对象模型中最基本的元素及其与关系型数据模型中的元素关系如表1所示.

DataContext对象是LINQ TO SQL编程接口中最重要的一个组件,DataContext对象具有管理数据库连接的打开和关闭、LINQ查询到标准SQL之间的转换、实体对象识别、跟踪所有检索到的实体所做的更改等功能.一般不能直接使用DataContext对象来完成特定的功能,而是通过使用一个DataContext继承子类来与数据库的交流.

在Visual Studio 2010中使用LINQ To SQL

(1)在项目中添加新项,选择“LINQ To SQL类”文件名为:sport.dbml.

(2)在服务器资源管理器面板中添加数据库.

(3)把数据库中的数据表拖到sport.dbml窗口中.

(4)则自动生成对应DataContext类的继承子类及数据表对应的类,即关系型数据库模型映射到Visual Studio 2010中的对象模型,如图1所示.

(5)在对象模型上对数据进行插入、更新、删除等操作,都只是对内存中的数据进行更改,并不会更改数据库中的数据.通过DataContext命令调用 SubmitChanges方法,才能实现对数据库的更改.

编写的LINQ查询语句转换成等效的标准SQL语句,然后将它们发送至数据库进行处理,返回的数据集,就是GridView控件的数据源.GridView控件绑定LINQ to SQL实现数据分页的优点是:LINQ To SQL数据源可以减少和数据库之间的交互,简化数据访问的代码量;在编译期间就进行语法检查,出现错误及时更改;LINQ语法中有部分模仿了SQL语言,简单易学;它的缺点是:这个数据分页方法做不到实时刷新.

4 以上两种数据分页技术性能分析

4.1 两种数据分页技术的数据访问可见图2

?譹?訛是GridView控件绑定SQL数据分页技术

?譺?訛是GridView控件绑定LINQ To SQL数据分页技术

由图2可以看出,对GridView控件绑定SQL的数据访问是通过二层架构实现的,对GridView控件绑定LINQ To SQL的数据访问是通过三层架构实现的,Web应用程序采用三层架构方式访问数据库能减少损失和风险,提高数据库的安全性.

4.2 对两种数据分页技术进行实验测试,每页显示30条记录,具体结果如表2所示.

测试的软件环境:操作系统Windows 10;开发环境 Microsoft Visual Studio 2010 C#;数据库SQL Server2008

测试的硬件环境:处理器Inter Core(TM) i7-6700 ;内存 8GB ;硬盘  SSD256GB

测试内容:对若干数据量进行数据分页查询

由表2可以看出,在数据量较小的情况下,两种数据分页技术的程序运行时间相差不多,在数据量中等或数据量较大时,GridView控件绑定LINQ To SQL数据分页的程序运行时间比GridView控件绑定SQL数据分页短,并且这个趋势随着数据量的增大而呈非线性增大.

5 GridView控件绑定LINQ To SQL数据分页实例

笔者开发的“田径及趣味运动会管理系统”Web应用程序,使用Visual Studio 2010 c#作为开发环境,SQL Server 2008作为后台数据库,在应用程序中有运动项目信息、运动员报名信息等,这一类信息的编辑是有一定的时间限制的,过了某一时间点就不允许修改,并且需要经常查询,用GridView控件绑定LINQ To SQL数据分页技术对系统中的这类信息进行查询,运行效果良好,以下是查询运动项目信息的服务器端代码片段.

protected void itemnamebind() //绑定GridView控件数据源

{ ItemnameView.DataSource = GetQuery();

this.ItemnameView.AutoGenerateColumns

= false;

ItemnameView.DataBind(); }

protected IQueryable<sportitem> GetQuery() //LINQ查询,返回查询数据集

{ DataClassesDataContext spContext = new

DataClassesDataContext();

var result = from i in spContext.sportitem

select i;

return result; }

應用程序运行效果如图3所示.

6 总结

本文重点介绍了GridView控件绑定LINQ To SQL实现数据分页的技术,从性能方面分析这种技术比GridView控件绑定SQL实现数据分页的技术更有优势,具有三层数据访问架构,提高了安全性,降低了网络通信数据量,提高页面访问速度,提升了整个系统的性能.这项数据分页技术对于ASP.NET开发的Web应用程序具有一定的指导意义.

参考文献:

〔1〕闫继涛.ASP.NET网络编程技术详解[M].清华大学出版社,2013.262,317.

〔2〕周虎,王彬,刑如意.ASP.NET程序设计项目教程(第2版)[M].北京理工大学出版社,2017.188.

〔3〕raisundoc.第6章ASP.NET数据库编程 [DB/OL]. 2010-09-18.http://www.docin.com/p-81144173.html.

〔4〕亓传伟.一步步学LINQ to SQL(一)——LINQ to SQL入门[J].电脑编程技巧与维护,2011(11):56-60.