KoReKuRai
   英語/転職   海外/国内旅行   健康   MENU

ASPXページのListViewでデータバインド時にEval()を使わないほうがいい?

csharpaspnet

よく見かける例文では、殆どの場合Eval()を使ってテーブルカラムを指定しデータバインドしています。

でもEval()を使うと遅くなる、Eval()は悪だ、という話しを目にして、じゃあ早く処理される方に変えようと思いました。

(マイクロソフトも、リフレクションを使ってるのでEval()は比較的遅いと言ってます)

以下はよく目にする例文です。ラベルのテキストにcompanynameという名前のテーブルカラムを指定しています。


<asp:Label ID="label01" runat="server" Text='<%#Eval("companyname")' />

Eval()コマンドを使用するとstring等の文字列を評価する為にリフレクションを使うそうで、このリフレクションがダメみたいです。

ということで、少しでも早くなるんだったらEval()じゃないコマンドを使おうと思い、見つけたのが以下の文です。


<asp:Label ID="label01" runat="server" Text='<%# ((DataRowView)Container.DataItem)["companyname"] %>' />

変更した後、テストしてみた

約10万件のデータに対しSELECT文のWHEREの条件でデータカラム10個をEval()じゃないコマンドで、ASPXページに結果を返してみた。

検索結果がほんのり速くなった気がするが、実感できるほどじゃなかった。。。

でも、余計な負荷がかからないんだったら、こっちの方が良いですね。

スポンサーリンク

📄 関連記事


🔝上へ
スポンサーリンク

📄 月間ランキング



🔝上へ
こんな記事も読まれてます。

TRAVEL JAPAN
国内旅行 記事一覧

屋久島雨の日の空気伊豆下田のきれいな海富士山の頂上ってどんなとこ?京都観光マップ京都 紅葉とライトアップ富士山周辺観光マップ北海道の知床の絶景箱根駒ケ岳で見る富士山

TRAVEL ABROAD
海外旅行 記事一覧

インド出張 タクシーで牛と遭遇スペインで風車を見たナイアガラの滝の虹が凄い深夜のNYタイムズスクエア香港の夜景は船からアメリカのレンタカー代でいくら?グランドキャニオンまでドライブシドニーの世界遺産
🔝上へ

CATEGORY
カテゴリ

PROFILE
プロフィール

これくらいブログKoReKuRaiです。神奈川県在住。外資系IT業界でお仕事続けて12年。現在、3歳児の子育てに奮闘中です。ビジネス英会話、転職、出張、旅行記や子育て、サイト作成やコーディングに色々役立つと思うブログを書き足していきます。拙い文章ですがよろしくお願いします。メールはこちらまでお願いします。

Copyright 2017 KoReKuRai All Rights Reserved.