よく見かける例文では、殆どの場合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ページに結果を返してみた。
検索結果がほんのり速くなった気がするが、実感できるほどじゃなかった。。。
でも、余計な負荷がかからないんだったら、こっちの方が良いですね。
📂外資系企業へ転職・働き方:外資系企業の転職,英語,面接,働き方
📂国内旅行150ヵ所を紹介:北海道,屋久島
📂海外出張10カ国,50ヵ所以上観光:スペイン,インド,台湾.飛行機対策
📂健康:胃痛,風邪予防,食,メンタル
📂子育て:英語,育て方,旅行
📂PC関連:エンジニアの苦悩,効率化,Windowsのトラブル対応
📂海外ドラマ:海外ドラマ・映画のレビューと感想
📂車関連:海外のレンタカー,試乗レポート,軽自動車,等々
📂物件:新築一戸建て 申し込みから購入・引渡しまで色々あったこと