溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

VS 2003DataGrid建立的一些困難與解決辦法是什么

發(fā)布時(shí)間:2021-12-07 16:34:24 來源:億速云 閱讀:106 作者:柒染 欄目:編程語言

VS 2003DataGrid建立的一些困難與解決辦法是什么,針對(duì)這個(gè)問題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡單易行的方法。

本章講的是VS 2003DataGrid的介紹與技巧,怎樣創(chuàng)建VS 2003DataGrid。這些內(nèi)容都是我花了幾個(gè)月的時(shí)間查閱資料并向IT精英們學(xué)習(xí)出來的,中間可能有不少錯(cuò)誤是我沒有挑出的,歡迎大家指正。

但是結(jié)果卻出乎我的意料,DataGrid 的效率 要比 Repeater高!詳細(xì)說一下我的測(cè)試方法,請(qǐng)大家看看我的測(cè)試方法有沒有什么問題,如果沒有什么問題的話,那么發(fā)生這種想象的原因是什么呢?

硬件:cpu:AMD XP2000+ 、80G硬盤、512M內(nèi)存。軟件:windows 2003 + sp1 、VS2003 、SQL Server 2000 + sp4測(cè)試數(shù)據(jù):顯示一張表(城市表)里的數(shù)據(jù),4個(gè)字段,349條記錄。測(cè)試目的:網(wǎng)站的頁面里面顯示數(shù)據(jù)的效率。只測(cè)試顯示數(shù)據(jù)的功能,不管其他的方面

VS 2003DataGrid 使用自動(dòng)填充,repeater的代碼:

<table id="DG" > <asp:repeater id="Rpt_Test" runat="server"> <ItemTemplate> <tr> <td><%# DataBinder.Eval(Container, "DataItem.CityID")%>td> <td><%# DataBinder.Eval(Container, "DataItem.ProvinceID")%> td> <td><%# DataBinder.Eval(Container, "DataItem.City")%> td> <td><%# DataBinder.Eval(Container, "DataItem.AeraCode")%> td> tr> ItemTemplate> asp:repeater>table>

??吹揭恍┪恼抡f repeater 比 VS 2003DataGrid 的性能要好,但是,我的測(cè)試結(jié)果是怎么回事呢?

測(cè)試結(jié)果:

顯示 10條記錄 ,沒有 ViewState ,DataTable 綁定控件,DataGrid使用綁定列。

1、 DataGrid : 250 rps 左右。

2、 Repeater : <%#>方法: 200 rps 左右。

3、Repeater : <%#>方法 : 250 rps 多一點(diǎn)點(diǎn)。

4、Repeater : <%#>方法 : 250 rps 多一點(diǎn)點(diǎn)。

其中 3、4 是我剛找到的一種綁定數(shù)據(jù)的方法??磥硎?<%#>這種綁定方法效率太低了。

一般的綁定方法<%#>用DataBinder.eval 綁定不必關(guān)心數(shù)據(jù)來源(Dataread或dataset)。不必關(guān)心數(shù)據(jù)的類型eval會(huì)把這個(gè)數(shù)據(jù)對(duì)象轉(zhuǎn)換為一個(gè)字符串。在底層綁定做了很多工作,使用了反射性能。

undefined

正因?yàn)槭褂梅奖懔?,但卻影響了數(shù)據(jù)性能。來看下<%#>。當(dāng)于dataset綁定時(shí),DataItem其實(shí)式一個(gè)DataRowView(如果綁定的是一個(gè)數(shù)據(jù)讀取器(dataread)它就是一個(gè) IdataRecord。)因此直接轉(zhuǎn)換成DataRowView的話,將會(huì)給性能帶來很大提升。

對(duì)數(shù)據(jù)的綁定建議使用<%#>。數(shù)據(jù)量大的時(shí)候可提高幾百倍的速度。使用時(shí)注意2方面:1.需在頁面添加<%@ import="" namespace="System.Data">.2.注意字段名的大小寫(要特別注意)。如果和查詢的不一致,在某些情況下會(huì)導(dǎo)致比< %# DataBinder.Eval(Container.DataItem, "字段名") %>還要慢。如果想進(jìn)一步提高速度,可采用<%#>的方法。不過其可讀性不高。

關(guān)于VS 2003DataGrid建立的一些困難與解決辦法是什么問題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI