DataSourceコントロールを使ったデータアクセス

ASP.NET2.0から導入されたDataSourceコントロールなんですが,なんとなく分かったような分からないような?ちょっとこの場で整理しようと思います.


データストアにあるデータの表示に,データバインドを使おうと思っています.しかしDataViewとかを使う気はあまりありません.たぶん<%# 〜 %>のような単純データバインドに文字列を埋め込む形式になると思います.なぜそうするかというと……まぁいろいろあるわけですが,それについては書かないことにします.


単純データバインドに埋め込む文字列は,データストアからのデータをもとに複雑な加工をする予定です.DataSourceコントロールを使ったデータアクセス〜加工・表示は,

  1. DataSourceコントロールを画面に配置して,ConnectionStringやSelectCommandなどを設定
  2. コードビハインド側で,DataSourceコントロールに対応するDataSourceViewsを作成
  3. DataSourceSelectArgumentsでSort順などを設定,DataSourceViewSelectCallbackでSelect発行時にコールバックされるメソッドを登録
  4. Select発行
  5. コールバックメソッド内でデータを加工し,表示用の文字列を作成
  6. DataBind

といった流れでいいのかな?と思っているのですが……本当に大丈夫か?


結構心配なんですよねー.たとえば,

  • DataSourceコントロールを画面に配置って……う〜ん,なんかやだ.できればデータアクセス層に置いておきたい.
  • DataSourceコントロールはWhere句の個数分必要?そんなわけないと思うんだけど,今日の調査では情報が見つからず.そういうものなのかなー?
  • データ加工時に,別のデータソースが必要になった場合どうするか?コールバックで動作するものを制御可能か?逆に,そういうことが起こらないような状態にしておくのか?


さすがに,この辺情報が少なくて手探り状態です.もうちょっとがんばればいい感じになりそうなんだけど……