国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于ASP.NET的控件數(shù)據(jù)分頁(yè)技術(shù)優(yōu)化

2019-09-10 07:22:44鄭愛玲莊元裕南琳

鄭愛玲 莊元裕 南琳

摘要:網(wǎng)頁(yè)頁(yè)面訪問(wèn)速度是Web程序性能的一項(xiàng)重要指標(biāo),高效的數(shù)據(jù)分頁(yè)技術(shù)可以提高頁(yè)面訪問(wèn)速度.這里分析了GridView控件分頁(yè)的實(shí)現(xiàn)過(guò)程、分析了GridView控件綁定SQL數(shù)據(jù)庫(kù)及GridView控件綁定LINQ To SQL數(shù)據(jù)庫(kù)兩種數(shù)據(jù)分頁(yè)技術(shù),在綜合比較這兩種數(shù)據(jù)分頁(yè)技術(shù)的性能及優(yōu)缺點(diǎn)的基礎(chǔ)上,得出后者安全性更強(qiáng)訪問(wèn)速度更快的結(jié)論,并對(duì)一個(gè)實(shí)際應(yīng)用場(chǎng)景的應(yīng)用效果進(jìn)行了探討.

關(guān)鍵詞:數(shù)據(jù)分頁(yè);GridView控件;SQL;LINQ To SQL

中圖分類號(hào):TP393 ?文獻(xiàn)標(biāo)識(shí)碼:A ?文章編號(hào):1673-260X(2019)05-0033-03

ASP.NET是Web應(yīng)用開發(fā)的主流技術(shù)之一.在使用ASP.NET的Web應(yīng)用程序中,為了提升數(shù)據(jù)庫(kù)查詢效果,普遍采用分頁(yè)技術(shù)顯示查詢結(jié)果.選擇不同的連接控件及配套數(shù)據(jù)庫(kù)對(duì)查詢效率產(chǎn)生不同的效果,當(dāng)前主流觀點(diǎn)認(rèn)為GridView控件綁定SQL數(shù)據(jù)庫(kù)可快速實(shí)現(xiàn)數(shù)據(jù)分頁(yè),靈活方便.綜合以上觀點(diǎn)及多年的實(shí)踐與分析,提出了GridView控件綁定LINQ To SQL數(shù)據(jù)庫(kù)實(shí)現(xiàn)數(shù)據(jù)分頁(yè)的方法,能大幅度提高分頁(yè)查詢效率.

1 GridView控件

在ASP.NET自帶分頁(yè)的控件中,GridView控件具有使用簡(jiǎn)單、容易控制、集成功能較多和開發(fā)速度較快的特性,它是一個(gè)多功能的控件,支持?jǐn)?shù)據(jù)自動(dòng)分頁(yè)、排序、編輯、刪除和選擇[1].以表格化格式顯示GridView控件的數(shù)據(jù),每行表示一條記錄,每列表示一個(gè)字段,GridView對(duì)象中用Rows屬性表示行集合,用Columns屬性表示列集合,用PagerTemplate屬性可以自定義用戶導(dǎo)航頁(yè)面.實(shí)現(xiàn)分頁(yè)的過(guò)程是:在GridView控件的屬性面板中設(shè)定允許分頁(yè)AllowPaging屬性為True,默認(rèn)值為False,設(shè)定PageSize屬性一個(gè)頁(yè)面上的記錄數(shù),默認(rèn)值為10;將數(shù)據(jù)源綁定到GridView對(duì)象中;觸發(fā)GridView對(duì)象的PageIndexChanging事件,可顯示分頁(yè)中的數(shù)據(jù).這種數(shù)據(jù)分頁(yè)靈活方便,也是開發(fā)人員所喜愛的.

2 GridView控件綁定SQL實(shí)現(xiàn)數(shù)據(jù)分頁(yè)

使用GridView控件綁定SQL Server數(shù)據(jù)庫(kù)實(shí)現(xiàn)數(shù)據(jù)分頁(yè)在ASP.NET開發(fā)的Web應(yīng)用程序中是目前最常用的一種方法..NET框架設(shè)計(jì)了數(shù)據(jù)訪問(wèn)對(duì)象模型ADO.NET,ADO.NET提供了一套訪問(wèn)數(shù)據(jù)庫(kù)或者XML數(shù)據(jù)源的類庫(kù)[1].ADO. NET有OLEDB、Oracle、SQL Server、ODBC四個(gè)數(shù)據(jù)提供者,System. Data. SqlClient命名空間中包含了訪問(wèn) SQL Server數(shù)據(jù)庫(kù)的類,可以快速、健壯和可靠地訪問(wèn)SQL Server.在Web應(yīng)用程序中引用數(shù)據(jù)庫(kù)的過(guò)程:數(shù)據(jù)庫(kù)連接用SqlConnection對(duì)象;數(shù)據(jù)庫(kù)中讀取數(shù)據(jù)用SqlDataAdapter對(duì)象或Sqlcommand對(duì)象;將執(zhí)行后的數(shù)據(jù)填充到DataSet對(duì)象中,GridView控件的數(shù)據(jù)源就是填充后的DataSet數(shù)據(jù)集.

GridView控件綁定SQL Server數(shù)據(jù)庫(kù)實(shí)現(xiàn)數(shù)據(jù)分頁(yè)的優(yōu)點(diǎn)是:編程效率高,可以提高查詢效率.它的缺點(diǎn)是:在SQL語(yǔ)句有錯(cuò)誤的時(shí)候,不能及時(shí)發(fā)現(xiàn),等到運(yùn)行時(shí)才提示錯(cuò)誤;只有精通SQL語(yǔ)句的程序員,才能寫出高效率代碼.

3 GridView控件綁定LINQ To SQL實(shí)現(xiàn)數(shù)據(jù)分頁(yè)

3.1 LINQ技術(shù)

LINQ是Language-Integrated Query英文縮寫,語(yǔ)言集成查詢,具有統(tǒng)一的語(yǔ)法,可以查詢多種異構(gòu)數(shù)據(jù)源,而且不用理會(huì)異構(gòu)數(shù)據(jù)源之間的差異.它與.NET編程語(yǔ)言進(jìn)行了高度集成,在很大程度上簡(jiǎn)化了數(shù)據(jù)查詢的編碼和調(diào)試工作,還可以方便地對(duì)內(nèi)存中的信息進(jìn)行查詢[2].LINQ技術(shù)主要包含三大分支,LINQ To Objents:主要用于操作內(nèi)存中的集合數(shù)據(jù);LINQ To XML:主要針對(duì)XML結(jié)構(gòu)的數(shù)據(jù)查詢;LINQ Enabled ADO.NET:主要針對(duì)關(guān)系型數(shù)據(jù)庫(kù)中的對(duì)象-關(guān)系模型的數(shù)據(jù)查詢,目前只支持SQL Server數(shù)據(jù)庫(kù)中的數(shù)據(jù),該技術(shù)也包含三個(gè)分支,分別是LINQ To SQL、LINQ To DataSet和LINQ To Entities.

3.2 LINQ To SQL

LINQ To SQL技術(shù)可快速構(gòu)建數(shù)據(jù)操作層,將關(guān)系型數(shù)據(jù)庫(kù)模型映射到開發(fā)環(huán)境語(yǔ)言所描述的對(duì)象模型,通過(guò)使用對(duì)象模型來(lái)實(shí)現(xiàn)數(shù)據(jù)庫(kù)的基本操作.當(dāng)程序執(zhí)行時(shí),會(huì)將LINQ操作命令轉(zhuǎn)換成等效的標(biāo)準(zhǔn)SQL語(yǔ)句,再將標(biāo)準(zhǔn)SQL語(yǔ)句發(fā)送到數(shù)據(jù)庫(kù)進(jìn)行執(zhí)行,數(shù)據(jù)庫(kù)會(huì)返回執(zhí)行命令后的數(shù)據(jù)集[3].LINQ to SQL將返回?cái)?shù)據(jù)集轉(zhuǎn)化為一個(gè)大的集合, 在這個(gè)集合上執(zhí)行LINQ操作命令,同時(shí)LINQ to SQL 也會(huì)將數(shù)據(jù)集轉(zhuǎn)換成開發(fā)環(huán)境語(yǔ)言能處理的對(duì)象.LINQ to SQL對(duì)象模型中最基本的元素及其與關(guān)系型數(shù)據(jù)模型中的元素關(guān)系如表1所示.

DataContext對(duì)象是LINQ TO SQL編程接口中最重要的一個(gè)組件,DataContext對(duì)象具有管理數(shù)據(jù)庫(kù)連接的打開和關(guān)閉、LINQ查詢到標(biāo)準(zhǔn)SQL之間的轉(zhuǎn)換、實(shí)體對(duì)象識(shí)別、跟蹤所有檢索到的實(shí)體所做的更改等功能.一般不能直接使用DataContext對(duì)象來(lái)完成特定的功能,而是通過(guò)使用一個(gè)DataContext繼承子類來(lái)與數(shù)據(jù)庫(kù)的交流.

在Visual Studio 2010中使用LINQ To SQL

(1)在項(xiàng)目中添加新項(xiàng),選擇“LINQ To SQL類”文件名為:sport.dbml.

(2)在服務(wù)器資源管理器面板中添加數(shù)據(jù)庫(kù).

(3)把數(shù)據(jù)庫(kù)中的數(shù)據(jù)表拖到sport.dbml窗口中.

(4)則自動(dòng)生成對(duì)應(yīng)DataContext類的繼承子類及數(shù)據(jù)表對(duì)應(yīng)的類,即關(guān)系型數(shù)據(jù)庫(kù)模型映射到Visual Studio 2010中的對(duì)象模型,如圖1所示.

(5)在對(duì)象模型上對(duì)數(shù)據(jù)進(jìn)行插入、更新、刪除等操作,都只是對(duì)內(nèi)存中的數(shù)據(jù)進(jìn)行更改,并不會(huì)更改數(shù)據(jù)庫(kù)中的數(shù)據(jù).通過(guò)DataContext命令調(diào)用 SubmitChanges方法,才能實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的更改.

編寫的LINQ查詢語(yǔ)句轉(zhuǎn)換成等效的標(biāo)準(zhǔn)SQL語(yǔ)句,然后將它們發(fā)送至數(shù)據(jù)庫(kù)進(jìn)行處理,返回的數(shù)據(jù)集,就是GridView控件的數(shù)據(jù)源.GridView控件綁定LINQ to SQL實(shí)現(xiàn)數(shù)據(jù)分頁(yè)的優(yōu)點(diǎn)是:LINQ To SQL數(shù)據(jù)源可以減少和數(shù)據(jù)庫(kù)之間的交互,簡(jiǎn)化數(shù)據(jù)訪問(wèn)的代碼量;在編譯期間就進(jìn)行語(yǔ)法檢查,出現(xiàn)錯(cuò)誤及時(shí)更改;LINQ語(yǔ)法中有部分模仿了SQL語(yǔ)言,簡(jiǎn)單易學(xué);它的缺點(diǎn)是:這個(gè)數(shù)據(jù)分頁(yè)方法做不到實(shí)時(shí)刷新.

4 以上兩種數(shù)據(jù)分頁(yè)技術(shù)性能分析

4.1 兩種數(shù)據(jù)分頁(yè)技術(shù)的數(shù)據(jù)訪問(wèn)可見圖2

?譹?訛是GridView控件綁定SQL數(shù)據(jù)分頁(yè)技術(shù)

?譺?訛是GridView控件綁定LINQ To SQL數(shù)據(jù)分頁(yè)技術(shù)

由圖2可以看出,對(duì)GridView控件綁定SQL的數(shù)據(jù)訪問(wèn)是通過(guò)二層架構(gòu)實(shí)現(xiàn)的,對(duì)GridView控件綁定LINQ To SQL的數(shù)據(jù)訪問(wèn)是通過(guò)三層架構(gòu)實(shí)現(xiàn)的,Web應(yīng)用程序采用三層架構(gòu)方式訪問(wèn)數(shù)據(jù)庫(kù)能減少損失和風(fēng)險(xiǎn),提高數(shù)據(jù)庫(kù)的安全性.

4.2 對(duì)兩種數(shù)據(jù)分頁(yè)技術(shù)進(jìn)行實(shí)驗(yàn)測(cè)試,每頁(yè)顯示30條記錄,具體結(jié)果如表2所示.

測(cè)試的軟件環(huán)境:操作系統(tǒng)Windows 10;開發(fā)環(huán)境 Microsoft Visual Studio 2010 C#;數(shù)據(jù)庫(kù)SQL Server2008

測(cè)試的硬件環(huán)境:處理器Inter Core(TM) i7-6700 ;內(nèi)存 8GB ;硬盤 ?SSD256GB

測(cè)試內(nèi)容:對(duì)若干數(shù)據(jù)量進(jìn)行數(shù)據(jù)分頁(yè)查詢

由表2可以看出,在數(shù)據(jù)量較小的情況下,兩種數(shù)據(jù)分頁(yè)技術(shù)的程序運(yùn)行時(shí)間相差不多,在數(shù)據(jù)量中等或數(shù)據(jù)量較大時(shí),GridView控件綁定LINQ To SQL數(shù)據(jù)分頁(yè)的程序運(yùn)行時(shí)間比GridView控件綁定SQL數(shù)據(jù)分頁(yè)短,并且這個(gè)趨勢(shì)隨著數(shù)據(jù)量的增大而呈非線性增大.

5 GridView控件綁定LINQ To SQL數(shù)據(jù)分頁(yè)實(shí)例

筆者開發(fā)的“田徑及趣味運(yùn)動(dòng)會(huì)管理系統(tǒng)”Web應(yīng)用程序,使用Visual Studio 2010 c#作為開發(fā)環(huán)境,SQL Server 2008作為后臺(tái)數(shù)據(jù)庫(kù),在應(yīng)用程序中有運(yùn)動(dòng)項(xiàng)目信息、運(yùn)動(dòng)員報(bào)名信息等,這一類信息的編輯是有一定的時(shí)間限制的,過(guò)了某一時(shí)間點(diǎn)就不允許修改,并且需要經(jīng)常查詢,用GridView控件綁定LINQ To SQL數(shù)據(jù)分頁(yè)技術(shù)對(duì)系統(tǒng)中的這類信息進(jìn)行查詢,運(yùn)行效果良好,以下是查詢運(yùn)動(dòng)項(xiàng)目信息的服務(wù)器端代碼片段.

protected void itemnamebind() //綁定GridView控件數(shù)據(jù)源

{ ItemnameView.DataSource = GetQuery();

this.ItemnameView.AutoGenerateColumns

= false;

ItemnameView.DataBind(); }

protected IQueryable<sportitem> GetQuery() //LINQ查詢,返回查詢數(shù)據(jù)集

{ DataClassesDataContext spContext = new

DataClassesDataContext();

var result = from i in spContext.sportitem

select i;

return result; }

應(yīng)用程序運(yùn)行效果如圖3所示.

6 總結(jié)

本文重點(diǎn)介紹了GridView控件綁定LINQ To SQL實(shí)現(xiàn)數(shù)據(jù)分頁(yè)的技術(shù),從性能方面分析這種技術(shù)比GridView控件綁定SQL實(shí)現(xiàn)數(shù)據(jù)分頁(yè)的技術(shù)更有優(yōu)勢(shì),具有三層數(shù)據(jù)訪問(wèn)架構(gòu),提高了安全性,降低了網(wǎng)絡(luò)通信數(shù)據(jù)量,提高頁(yè)面訪問(wèn)速度,提升了整個(gè)系統(tǒng)的性能.這項(xiàng)數(shù)據(jù)分頁(yè)技術(shù)對(duì)于ASP.NET開發(fā)的Web應(yīng)用程序具有一定的指導(dǎo)意義.

參考文獻(xiàn):

〔1〕閆繼濤.ASP.NET網(wǎng)絡(luò)編程技術(shù)詳解[M].清華大學(xué)出版社,2013.262,317.

〔2〕周虎,王彬,刑如意.ASP.NET程序設(shè)計(jì)項(xiàng)目教程(第2版)[M].北京理工大學(xué)出版社,2017.188.

〔3〕raisundoc.第6章ASP.NET數(shù)據(jù)庫(kù)編程 [DB/OL]. 2010-09-18.http://www.docin.com/p-81144173.html.

〔4〕亓傳偉.一步步學(xué)LINQ to SQL(一)——LINQ to SQL入門[J].電腦編程技巧與維護(hù),2011(11):56-60.

西宁市| 平山县| 龙州县| 始兴县| 淄博市| 邵武市| 昌平区| 永城市| 新源县| 阜阳市| 巴青县| 西乌珠穆沁旗| 阳原县| 闵行区| 进贤县| 自治县| 大名县| 金塔县| 拉孜县| 峨边| 九龙城区| 视频| 延川县| 裕民县| 雅江县| 无锡市| 台中县| 梁山县| 滨海县| 南涧| 民权县| 五家渠市| 田阳县| 伽师县| 孟连| 崇文区| 富裕县| 屏南县| 邢台市| 志丹县| 布拖县|