
大変お世話になっております。
Webフォーム上にObjectDataSourceを配置しております。
GridViewのデータソースとして何の問題もなく動作しております。
この配置してある ObjectDataSource のデータ全件を取得したいのですが、
文法はめちゃくちゃだと思うのですが、下記のイメージのような
取得の仕方はありますでしょうか?
他の方法でも構いませんので、ご指摘、ご教授いただければと存じます。
Dim TEST As ObjectDataSource = ODS_TEST
Dim buf As New StringBuilder
For Each row As TEST In ObjectDataSource.Rows
buf.Append(row.Cells("項目1").Text)
buf.Append(",")
buf.Append(row.Cells("項目2").Text)
Next
No.3ベストアンサー
- 回答日時:
こんにちは
何かObjectDataSourceの役割を勘違いされているような気がしますが。。
ObjectDataSourceというのは、表示・編集形のコントロールと、データ入出力のスキーム(TableAdapterとか、DataAdapterとか、XMLReaderとかetc)を「接着」すrための中間的なクラスです。
何のためにこんなものがあるかといえば、断然「データのページング取得」と「データ更新のための双方向バインディング」のためです。
なので、データの取得自体はデータアクセス層(DAL)の役目であり、ObjectDataSourceは表示・編集コントロールのための「繋ぎ役」にすぎません。
データ全件取得などのニーズであれば、直接DALから取るほうが速いし、メモリ的にも優しい処理です。
DataGridViewやListView、FormViewなどが主役でなければ、ObjectDataSourceはお呼びでないです。
また最近は、EntityFrameworkのような、リレーショナルデータを一括して処理できるDALの普及で、ObjectDataSourceの出番はなくなりました。
ADO.NET2.0時代の遺物にあまり拘らないほうがいいと。。
shockatzさん お世話になります。
ObjectDataSource の役割がよくわかりました。
もしかしたら、GridViewで使用している ObjectDataSource で、テキストファイル出力の為につかえないかなーっと思ったのが質問の意図でした。
DALとは何者か?! その辺りからいろいろと調べてみようと思っております。
ありがとうございました
No.2
- 回答日時:
> ObjectDataSourceと同じSQL文(別途に記述して作成)から、
> SqlDataReaderを使用して ReadをWhileループさせて
> StringBuilderにカンマ区切りで保存させてCSVファイルの
> 出力まで完成させたのですが、
それをできるスキルがあるのなら、そうするのがベストだと
思いますが。すべて自分の思い通りできるはずですから。
> ObjectDataSourceと同じデータソースを使うなら、これを
> 利用できないかと思い、それまでの経緯は省いた形で質問
> させていただきました。
ObjectDataSource.Select メソッドを使ってデータを取得で
きると思いますが、自力でコードを書いてデータを取得でき
るなら、あまりメリットはなさそうです。
WebSurferさん お世話になっております。
ObjectDataSource.Select メソッドでもデータを取得できるのですね!
調べてみようと思っております。
また困ったことがありましたら、何卒ご教授いただければと存じます。
No.1
- 回答日時:
> この配置してある ObjectDataSource のデータ全件を取得
> したいのですが、
意味が全く分かりません。もっと具体的に何がしたいのか書いていただけませんか?
この回答への補足
WebSurferさん お世話になります。
GridView のデータをCSVファイルに出力したいと考えております。
GridView のCSVファイル出力については、各サイトで紹介されているサンプルで取得できたのですが、GridViewのページオプションを適応していると、全件取得できないことや、テンプレートフィールドにしていると、その部分のセルの値が取得できないなどの事がわかりました。
ObjectDataSourceと同じSQL文(別途に記述して作成)から、SqlDataReaderを使用して ReadをWhileループさせてStringBuilderにカンマ区切りで保存させてCSVファイルの出力まで完成させたのですが、ObjectDataSourceと同じデータソースを使うなら、これを利用できないかと思い、それまでの経緯は省いた形で質問させていただきました。
Webフォームにすでに貼ってあるObjectDataSourceから直接CSVファイルに出力できる方法など、もしくは、Whileループなどを使用して全件データが取得できる方法があれば、CSVファイルを出力する機能をつける他のページでも流用できればなと思った次第であります。
ObjectDataSourceからこのような形でデータ取得をすること自体が間違ったことである、こういう方法がある、他の方法でこんな方法があるなどございましたら、何卒ご指摘、ご教授いただければと存じます。
よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【Excel VBA】先頭の「0」飛び...
-
.NET SqlDataReader のレコー...
-
Excelのグラフがちらつい...
-
テキストボックスのvalueとtext...
-
VB.NETで DataRow()を利用して...
-
VBAでActiveDirectoryのユーザ...
-
【Excel VBA】指定行以降をクリ...
-
エクセルVBAで範囲内での位置取...
-
count(*)で取得した値をJAVAの...
-
SUMPRODUCT関数を用いた最小値
-
利用者側のMACアドレスを取得し...
-
値を返さないコード パス
-
エクセルVBAでコピーして順...
-
特定のセルが空白だったら、そ...
-
like演算子内に変数って使えな...
-
ExcelのINDEXとMATCH関数でスピ...
-
エクセル 条件を指定した標準...
-
VB.NETで、EXCELの右寄せ
-
SQLでlike検索条件を副問い合わ...
-
ReportViewerでのパラメータ設定
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DataGrdViewに関連付けたデータ...
-
【Excel VBA】先頭の「0」飛び...
-
Listviewのデータを上から順番...
-
VB.net CrystalReportでプロジ...
-
.NET SqlDataReader のレコー...
-
GridViewにバインドせずにデー...
-
DataGridViewで表示に制限をつ...
-
GASでスプレッドシートの一番上...
-
C# データ配列から画像を作成す...
-
VBA ピボットテーブル自動更新
-
MSFlexGridのデータ表示位置の設定
-
JSPとサーブレットを使用した勤...
-
VBAでページ番号、ページ最終行...
-
【ASP.NET MVC】一覧編集画面
-
スプレッドシート 一括でQRコー...
-
ListViewで条件によって表示を...
-
C# ニコニコ動画API getthumbinfo
-
VBAで表に1つでも入ってたら取...
-
ACCESSのVBAで[Split]について
-
Q横並びデータを縦並びに変更
おすすめ情報