999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

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

鄭愛玲 莊元裕 南琳

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

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

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

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

1 GridView控件

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

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

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

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

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

3.1 LINQ技術(shù)

LINQ是Language-Integrated Query英文縮寫,語言集成查詢,具有統(tǒng)一的語法,可以查詢多種異構(gòu)數(shù)據(jù)源,而且不用理會異構(gòu)數(shù)據(jù)源之間的差異.它與.NET編程語言進(jìn)行了高度集成,在很大程度上簡化了數(shù)據(jù)查詢的編碼和調(diào)試工作,還可以方便地對內(nèi)存中的信息進(jìn)行查詢[2].LINQ技術(shù)主要包含三大分支,LINQ To Objents:主要用于操作內(nèi)存中的集合數(shù)據(jù);LINQ To XML:主要針對XML結(jié)構(gòu)的數(shù)據(jù)查詢;LINQ Enabled ADO.NET:主要針對關(guān)系型數(shù)據(jù)庫中的對象-關(guān)系模型的數(shù)據(jù)查詢,目前只支持SQL Server數(shù)據(jù)庫中的數(shù)據(jù),該技術(shù)也包含三個分支,分別是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ù)庫模型映射到開發(fā)環(huán)境語言所描述的對象模型,通過使用對象模型來實現(xiàn)數(shù)據(jù)庫的基本操作.當(dāng)程序執(zhí)行時,會將LINQ操作命令轉(zhuǎn)換成等效的標(biāo)準(zhǔn)SQL語句,再將標(biāo)準(zhǔn)SQL語句發(fā)送到數(shù)據(jù)庫進(jìn)行執(zhí)行,數(shù)據(jù)庫會返回執(zhí)行命令后的數(shù)據(jù)集[3].LINQ to SQL將返回數(shù)據(jù)集轉(zhuǎn)化為一個大的集合, 在這個集合上執(zhí)行LINQ操作命令,同時LINQ to SQL 也會將數(shù)據(jù)集轉(zhuǎn)換成開發(fā)環(huán)境語言能處理的對象.LINQ to SQL對象模型中最基本的元素及其與關(guān)系型數(shù)據(jù)模型中的元素關(guān)系如表1所示.

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

在Visual Studio 2010中使用LINQ To SQL

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

筆者開發(fā)的“田徑及趣味運動會管理系統(tǒng)”Web應(yīng)用程序,使用Visual Studio 2010 c#作為開發(fā)環(huán)境,SQL Server 2008作為后臺數(shù)據(jù)庫,在應(yīng)用程序中有運動項目信息、運動員報名信息等,這一類信息的編輯是有一定的時間限制的,過了某一時間點就不允許修改,并且需要經(jīng)常查詢,用GridView控件綁定LINQ To SQL數(shù)據(jù)分頁技術(shù)對系統(tǒng)中的這類信息進(jìn)行查詢,運行效果良好,以下是查詢運動項目信息的服務(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)用程序運行效果如圖3所示.

6 總結(jié)

本文重點介紹了GridView控件綁定LINQ To SQL實現(xiàn)數(shù)據(jù)分頁的技術(shù),從性能方面分析這種技術(shù)比GridView控件綁定SQL實現(xiàn)數(shù)據(jù)分頁的技術(shù)更有優(yōu)勢,具有三層數(shù)據(jù)訪問架構(gòu),提高了安全性,降低了網(wǎng)絡(luò)通信數(shù)據(jù)量,提高頁面訪問速度,提升了整個系統(tǒng)的性能.這項數(shù)據(jù)分頁技術(shù)對于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è)計項目教程(第2版)[M].北京理工大學(xué)出版社,2017.188.

〔3〕raisundoc.第6章ASP.NET數(shù)據(jù)庫編程 [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.

主站蜘蛛池模板: 亚洲成人高清无码| 国产欧美日韩18| 久久性视频| 亚洲无限乱码| 国语少妇高潮| 大陆精大陆国产国语精品1024 | 国产精品片在线观看手机版| 国产日韩丝袜一二三区| 国产微拍精品| 亚洲毛片在线看| 欧美成人日韩| 波多野结衣一区二区三区AV| 欧美亚洲国产精品第一页| 国产亚洲欧美在线中文bt天堂| 日韩精品无码免费专网站| 久久综合九九亚洲一区| 久久毛片基地| 久久综合亚洲色一区二区三区| 国产成人无码AV在线播放动漫 | 免费一级无码在线网站| 欧美在线伊人| 久久黄色影院| 久久综合色播五月男人的天堂| 制服丝袜无码每日更新| 国产高清不卡| 福利在线免费视频| 精品久久蜜桃| 国产精品天干天干在线观看| 制服丝袜一区| 日本不卡视频在线| 毛片最新网址| www.亚洲天堂| 这里只有精品国产| 久久久国产精品无码专区| 一区二区日韩国产精久久| 亚洲AV无码不卡无码 | 久久国产热| 熟女成人国产精品视频| 欧美19综合中文字幕| 亚洲欧洲日韩久久狠狠爱| 亚洲国产看片基地久久1024| 国产乱子伦视频三区| 国产一区免费在线观看| 久久久久无码国产精品不卡| 日韩A∨精品日韩精品无码| 日韩欧美中文| 99热这里只有精品久久免费| 免费人成视网站在线不卡 | 色呦呦手机在线精品| 国产精品嫩草影院视频| 99成人在线观看| 亚洲国产综合第一精品小说| 久久亚洲精少妇毛片午夜无码| 国产精品尤物在线| 乱人伦视频中文字幕在线| 国产精品成人第一区| 黄色网站不卡无码| 噜噜噜久久| 精品国产中文一级毛片在线看| 亚洲中文字幕23页在线| AV天堂资源福利在线观看| 真实国产乱子伦视频| 亚洲成人动漫在线| 欧美啪啪网| 国产在线一区视频| 亚洲精品自拍区在线观看| 国产农村妇女精品一二区| 亚洲毛片在线看| 孕妇高潮太爽了在线观看免费| 一级不卡毛片| 毛片免费观看视频| 国产乱子伦一区二区=| 伊人91在线| 亚洲精品午夜天堂网页| 99视频在线看| 日韩精品亚洲一区中文字幕| 精品国产成人国产在线| 欧美精品一区在线看| 亚洲国产看片基地久久1024| 国产色婷婷视频在线观看| 国产在线视频导航| 成人免费黄色小视频|