6

我从很多地方读到,可以使用 DataAdapter 用多个表填充 DataSet。它也没有说明单个 Update 调用是否可以更新 DataSet 中的所有表。

有人可以帮我弄清楚如何做到这一点吗?

除了在第二次填充之前更改 DataAdapter 上的 SelectCommand 之外,似乎没有任何(我尝试在网上查找)示例说明如何执行此操作。但我觉得这种方法违背了 DataAdapter 的目的。

据我所知,也许单个 DataAdapter 只能处理单个数据库表,而 Update 仅适用于该表。因此,多表 DataSet 将需要各自的 DataAdapter 调用它们的 Update 来完全更新 DataSet。是这样吗?

最后,外键关系和约束是否会自动保存在 DataSet 中(级联删除、级联更新)?

也许一个示例或教程的链接可能会有所帮助。非常感谢!

4

1 回答 1

5
  1. 是的,单表的单适配器是真的。但是

  2. 您可以使用使用表适配器管理器一次保存所有适配器,表适配器管理器可以有许多单独的适配器,您可以调用全部保存。喜欢,所以不需要多次调用保存它也有其他功能。

    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 回答