none
TableAdapterとDataSetについて RRS feed

  • 質問

  • こんにちは。

    データソースにて、新しいデータソースの追加とするとTableAdapterを作成することができ、あわせてDataSetができると思います。

    素朴な疑問なのですが、ひとつのDataSetに対して、DBのすべてのTableAdapterなどを作成しても問題ないものでしょうか。

    今まで、一つのフォームに対して、ひとつのDataSetといった形で作成をしていたのですが、いくつTableAdapterがあっても
    データの読み込みをしなければ動作に影響はないのかと思ってしまい、質問をさせていただきました。

    ただ、一つのものに全て入れてしまうとわかりにくいので、今後も分けていこうかとは思っているのですが、普通はどのように行う
    ものでしょうか。

    アドバイスお願いします。

    2010年5月26日 9:30

回答

  • 素朴な疑問なのですが、ひとつのDataSetに対して、DBのすべてのTableAdapterなどを作成しても問題ないものでしょうか。

    問題ありません。

    今まで、一つのフォームに対して、ひとつのDataSetといった形で作成をしていたのですが、いくつTableAdapterがあっても
    データの読み込みをしなければ動作に影響はないのかと思ってしまい、質問をさせていただきました。

    これはやりすぎです。DataTableやクエリを複数のフォームから使用することもあるでしょう。

    ただ、一つのものに全て入れてしまうとわかりにくいので、今後も分けていこうかとは思っているのですが、普通はどのように行う
    ものでしょうか。

    アプリケーションの規模にもよると思いますが、アプリケーションでデータベース単位に1つのDataSetを用意し、そこに複数のDataTableやTableAdapter、クエリを持たせるのが基本でしょう。
    アプリケーションの規模が大きくなると用意するDataTableの数も増えるでしょうから、その時はDataSetを分けた方が管理しやすいかもしれませんね。いずれにしてもDataSetをどう用意するかは、人間が管理しやすいかどうかだけの問題でしょう。


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://blogs.wankuma.com/trapemiya/
    • 回答としてマーク 山本春海 2010年5月31日 5:21
    2010年5月26日 14:59
    モデレータ
  • > 素朴な疑問なのですが、ひとつのDataSetに対して、DBのすべてのTableAdapterな
    > どを作成しても問題ないものでしょうか。

    一つの DataSet に複数(一つでもいいですが)の DataTable とそれと対になる TableAdapter
    を作成するのが普通です。

    DataTable と DB のテーブルは必ずしも一対一ではなく、複数のテーブルを JOIN した SELECT
    クエリで DataTable を作ることも可能です。

    • 編集済み SurferOnWww 2010年5月26日 14:34 もう一箇所ありました: DataSet → DataTable
    • 回答としてマーク 山本春海 2010年5月31日 5:21
    2010年5月26日 14:04

すべての返信

  • > 素朴な疑問なのですが、ひとつのDataSetに対して、DBのすべてのTableAdapterな
    > どを作成しても問題ないものでしょうか。

    一つの DataSet に複数(一つでもいいですが)の DataTable とそれと対になる TableAdapter
    を作成するのが普通です。

    DataTable と DB のテーブルは必ずしも一対一ではなく、複数のテーブルを JOIN した SELECT
    クエリで DataTable を作ることも可能です。

    • 編集済み SurferOnWww 2010年5月26日 14:34 もう一箇所ありました: DataSet → DataTable
    • 回答としてマーク 山本春海 2010年5月31日 5:21
    2010年5月26日 14:04
  • 素朴な疑問なのですが、ひとつのDataSetに対して、DBのすべてのTableAdapterなどを作成しても問題ないものでしょうか。

    問題ありません。

    今まで、一つのフォームに対して、ひとつのDataSetといった形で作成をしていたのですが、いくつTableAdapterがあっても
    データの読み込みをしなければ動作に影響はないのかと思ってしまい、質問をさせていただきました。

    これはやりすぎです。DataTableやクエリを複数のフォームから使用することもあるでしょう。

    ただ、一つのものに全て入れてしまうとわかりにくいので、今後も分けていこうかとは思っているのですが、普通はどのように行う
    ものでしょうか。

    アプリケーションの規模にもよると思いますが、アプリケーションでデータベース単位に1つのDataSetを用意し、そこに複数のDataTableやTableAdapter、クエリを持たせるのが基本でしょう。
    アプリケーションの規模が大きくなると用意するDataTableの数も増えるでしょうから、その時はDataSetを分けた方が管理しやすいかもしれませんね。いずれにしてもDataSetをどう用意するかは、人間が管理しやすいかどうかだけの問題でしょう。


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://blogs.wankuma.com/trapemiya/
    • 回答としてマーク 山本春海 2010年5月31日 5:21
    2010年5月26日 14:59
    モデレータ
  • ご回答ありがとうございます。

    よくわかりました。

    DataSetの構成などでリレーションを設定していたりしたら、だいぶみにくくなってしまったので、皆さんはどのように
    管理していらっしゃるかと思い、質問をさせていただきました。

    現在、内容別にDBは分けているので、DBごとにDataSetがあるということがわかりやすいように思えます。

    ご回答ありがとうございました。

    2010年5月26日 18:02