6

DataAdapterを使用して、DataSetを複数のテーブルで埋めることができることを多くの場所から読みました。また、1回のUpdate呼び出しでDataSet内のすべてのテーブルを更新できるかどうかも示されません。

誰かがこれをどのように行うことができるかを理解するのを手伝ってもらえますか?

2回目の入力の前にDataAdapterのSelectCommandを変更する例を除いて、それを行う方法の例はないようです(オンラインで見つけてみました)。しかし、この方法はDataAdapterの目的を損なうと思います。

私の考えでは、おそらく1つのDataAdapterは1つのデータベーステーブルしか処理できず、Updateはそのテーブルでのみ機能します。したがって、マルチテーブルDataSetでは、DataAdapterがDataSetを完全に更新するためにUpdateを呼び出す必要があります。これは本当ですか?

最後に、外部キーの関係と制約は、DataSet(カスケード削除、カスケード更新)に自動的に保持されますか?

たぶん、例やチュートリアルへのリンクが役立つかもしれません。どうもありがとう!

4

1 に答える 1

5
  1. はい、それは本当です、単一のテーブル用の単一のアダプター。しかし

  2. テーブル アダプター マネージャーを使用して一度にすべてを保存することができます。テーブル アダプター マネージャーは多数の個別のアダプターを持つことができ、save for all を呼び出すことができます。のように、save を複数回呼び出す必要はなく、他の機能もあります。

    public void SaveWithManager()
    {
    DataSet1TableAdapters.TableAdapterManager mgr1 = new DataSet1TableAdapters.TableAdapterManager();
    DataSet1TableAdapters.Table1TableAdapter taTbl1 = new DataSet1TableAdapters.Table1TableAdapter();
    DataSet1TableAdapters.Table2TableAdapter taTbl2 = new DataSet1TableAdapters.Table2TableAdapter();
    
    
    mgr1.Table1TableAdapter = taTbl1;
    mgr1.Table2TableAdapter = taTbl2;
    mgr1.UpdateOrder = DataSet1TableAdapters.TableAdapterManager.UpdateOrderOption.InsertUpdateDelete; 
    mgr1.UpdateAll(your dataset);
    

    }

  3. 最後に、カスケード更新削除がデータセットで処理されます。リレーションのプロパティとカスケードのさまざまなオプションを表示できます。 (型付きデータセット)

于 2011-01-01T18:13:41.393 に答える