- ベストアンサー
ASP.Net ObjectDataSourceについての質問
- ASP.NetでAccessから移行したシステムにおいて、GridViewのデータソースとして動的なWhere文を使用するため、ObjectDataSourceを使用することがアドバイスされました。しかし、ObjectDataSourceの利用方法について難解で理解できていません。具体的には、動的なWhere文を作成するために、クエリを追加する必要がありますが、パラメーターの数に応じて多くのクエリを追加する必要があることに戸惑っています。また、動的クエリを実行する方法もわかりません。どのような概念で登録していくのか教えていただきたいです。
- ASP.NetでAccessから移行したシステムにおいて、GridViewのデータソースとしてObjectDataSourceを使用しようとしています。具体的には、動的なWhere文を作成する必要がありますが、ObjectDataSourceの利用方法が難解です。書籍にはクエリを追加するようにと記述されていますが、パラメーターの数に応じて多くのクエリを追加する必要があるため、どのように登録していくのかがわかりません。また、動的クエリの実行方法もわかりません。前に進むためのヒントを教えていただきたいです。
- ASP.NetでAccessから移行したシステムにおいて、GridViewのデータソースとしてObjectDataSourceを使用しようとしています。動的なWhere文を作成する必要があるため、ObjectDataSourceの利用方法について勉強中ですが、理解が進んでいません。具体的には、クエリを追加する必要がありますが、パラメーターの数に応じて多くのクエリを追加しなければならないことに疑問を感じています。また、動的クエリを実行する方法も理解していません。どのように登録していくのか、前進するためのアドバイスをいただきたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
TableAdapterてのは、データの入れ物であるDataTableと、アクセス手段の合成体です。 以前からあった、DataAdapterを、複数のアクセスメソッドを持てるようにしてクラス化しています。 で、そのDataAdapterてのは、Connectionとか、OleDBオブジェクトをラップしています。 なので、掘っていけばどんどん下層のレイヤが見えてくるので、どうにでも変更できます。 コース料理を頼んでおいて、一品料理を変更したり、追加するような感じ? 具体的には、TableAdapterはパーシャルクラスなので、自分の好きなメソッドを追加したり、ウィザードで作ったアクセスメソッドを引っ張り出して、SQLを変更したりできます。 http://d.hatena.ne.jp/JHashimoto/20110703/1309690826 リンク例にあるように、各メソッドにアクセス属性をつけておくと、ObjectDataSourceのメソッド選択ウィザードにHitするので捗るらしいのですが、自分は手動でメソッド指定しています。
その他の回答 (1)
- shockatz
- ベストアンサー率80% (153/191)
リンク記事はDBが何とpostgresやった。 (まあいちおうTableADapterの拡張方法は同じなので) こちらの記事の方が明快。ObjectDataSourceまわりも書いてある。 http://www.atmarkit.co.jp/fdotnet/vs2005db/vs2005db_07/vs2005db_07_01.html
補足
shockatzさん 大変お世話になっております。 ご紹介いただいた 赤間本こと、構築技法の書籍は非常に読みやすく、今まで不明な部分だった事が解き明かされるようで、本当に購入してよかった書籍だと思いました。この場をお借りして御礼申し上げます。 なんとなくだんだんわかってきたのですが、確証がつかめない感じなので、補足にて改めて、私が考えている概要があっているかどうかご指摘いただければと存じます。 ご指摘いただいたページにあるパーシャル・クラスの例題に関してなのですが (1) App_CodeフォルダにDataSet用のクラスを作成する部分なのですが、 例題にある引数 Public Function GetBooksDataSet(ByVal publish As String) この部分の publish これは何か決められた文字列なのでしょうか? もしかして、この例題の関数自体が独自に作成されているのでこの引数もユーザーが勝手に決めて良いものなのでしょうか? (publish とは ユーザーが勝手に決めた引数? もしかしてこの辺りも自由自在?) (2) 同じ例題にある comm.CommandText = "SELECT * FROM books" この部分なのですが、もしかして comm.CommandText = SQL文 この部分ににユーザーが自由自在にSQL文を設定できるのですか? 自由自在にパーシャル・クラスで設定できるというのはこの事なのでしょうか? (3) グリットビューにGetBooksDataSetをバインドさせてから 実際に、グリッドビューのデータを変更させるためには 例えば、ボタンオブジェクトから パーシャル・クラスの GetBooksDataSetを呼び出せば GetBooksDataSetが実行されてグリットビューのデータが更新されると考えてよろしいのでしょうか? うまくご説明できませんが、上記3つの問題が解決できれば大きく前に進めるかと思います。 何卒ご教授いただけますようよろしくお願い申し上げます。
お礼
shockatz様、大変お世話になっております。 最新の質問までいろいろとご指導ありがとうございます。 ObjectDataSource とDBの接続方法、動的SQL文の設定、 そのほか、いろいろな接続、変更などの方法の仕方が未熟ゆえ わからない次第でございます。 まだグリッドビューの動的SQLの変更方法など、まだわたくしには早かったかなと質問の回答を見させていただき思って次第でございます。 まずは ご紹介いただいた、赤間本を読破、熟読し、グリッドビュー、リストビューの選定など、改めてご質問させて下さいませ。 その際には初心者にもわかるご回答お待ち申し上げております。 ありがとうございました。