• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ASP.Net ObjectDataSource)

ASP.Net ObjectDataSourceのデータ全件取得方法

このQ&Aのポイント
  • ASP.NetのWebフォーム上に配置されたObjectDataSourceを使用して、データソースとして設定されたGridViewのデータ全件を取得する方法について解説します。
  • 下記のコードイメージを使用することで、ObjectDataSourceからデータを取得することができます。
  • また、別の方法でもデータを取得することができるので、詳細は以下のコードをご確認ください。

質問者が選んだベストアンサー

  • ベストアンサー
  • shockatz
  • ベストアンサー率80% (153/191)
回答No.3

こんにちは 何かObjectDataSourceの役割を勘違いされているような気がしますが。。 ObjectDataSourceというのは、表示・編集形のコントロールと、データ入出力のスキーム(TableAdapterとか、DataAdapterとか、XMLReaderとかetc)を「接着」すrための中間的なクラスです。 何のためにこんなものがあるかといえば、断然「データのページング取得」と「データ更新のための双方向バインディング」のためです。 なので、データの取得自体はデータアクセス層(DAL)の役目であり、ObjectDataSourceは表示・編集コントロールのための「繋ぎ役」にすぎません。 データ全件取得などのニーズであれば、直接DALから取るほうが速いし、メモリ的にも優しい処理です。 DataGridViewやListView、FormViewなどが主役でなければ、ObjectDataSourceはお呼びでないです。 また最近は、EntityFrameworkのような、リレーショナルデータを一括して処理できるDALの普及で、ObjectDataSourceの出番はなくなりました。 ADO.NET2.0時代の遺物にあまり拘らないほうがいいと。。

kyokotan12
質問者

お礼

shockatzさん お世話になります。 ObjectDataSource の役割がよくわかりました。 もしかしたら、GridViewで使用している ObjectDataSource で、テキストファイル出力の為につかえないかなーっと思ったのが質問の意図でした。 DALとは何者か?! その辺りからいろいろと調べてみようと思っております。 ありがとうございました

その他の回答 (2)

  • WebSurfer
  • ベストアンサー率55% (33/59)
回答No.2

> ObjectDataSourceと同じSQL文(別途に記述して作成)から、 > SqlDataReaderを使用して ReadをWhileループさせて > StringBuilderにカンマ区切りで保存させてCSVファイルの > 出力まで完成させたのですが、 それをできるスキルがあるのなら、そうするのがベストだと 思いますが。すべて自分の思い通りできるはずですから。 > ObjectDataSourceと同じデータソースを使うなら、これを > 利用できないかと思い、それまでの経緯は省いた形で質問 > させていただきました。 ObjectDataSource.Select メソッドを使ってデータを取得で きると思いますが、自力でコードを書いてデータを取得でき るなら、あまりメリットはなさそうです。

kyokotan12
質問者

お礼

WebSurferさん お世話になっております。 ObjectDataSource.Select メソッドでもデータを取得できるのですね! 調べてみようと思っております。 また困ったことがありましたら、何卒ご教授いただければと存じます。

  • WebSurfer
  • ベストアンサー率55% (33/59)
回答No.1

> この配置してある ObjectDataSource のデータ全件を取得 > したいのですが、 意味が全く分かりません。もっと具体的に何がしたいのか書いていただけませんか?

kyokotan12
質問者

補足

WebSurferさん お世話になります。 GridView のデータをCSVファイルに出力したいと考えております。 GridView のCSVファイル出力については、各サイトで紹介されているサンプルで取得できたのですが、GridViewのページオプションを適応していると、全件取得できないことや、テンプレートフィールドにしていると、その部分のセルの値が取得できないなどの事がわかりました。 ObjectDataSourceと同じSQL文(別途に記述して作成)から、SqlDataReaderを使用して ReadをWhileループさせてStringBuilderにカンマ区切りで保存させてCSVファイルの出力まで完成させたのですが、ObjectDataSourceと同じデータソースを使うなら、これを利用できないかと思い、それまでの経緯は省いた形で質問させていただきました。 Webフォームにすでに貼ってあるObjectDataSourceから直接CSVファイルに出力できる方法など、もしくは、Whileループなどを使用して全件データが取得できる方法があれば、CSVファイルを出力する機能をつける他のページでも流用できればなと思った次第であります。 ObjectDataSourceからこのような形でデータ取得をすること自体が間違ったことである、こういう方法がある、他の方法でこんな方法があるなどございましたら、何卒ご指摘、ご教授いただければと存じます。 よろしくお願いいたします。

関連するQ&A