2011-01-01 3 views
4

Я читал из многих мест, что можно заполнить DataSet несколькими таблицами с помощью DataAdapter. Он также не говорит, может ли один вызов Update обновлять все таблицы в DataSet.C# DataAdapter и DataSet с несколькими таблицами

Может кто-нибудь помочь мне разобраться, как это можно сделать?

Похоже, что нет (я пытался найти онлайн) примеры того, как это сделать, кроме одного, который меняет SelectCommand на DataAdapter перед вторым заполнением. Но я считаю, что этот метод побеждает цель DataAdapter.

Из того, что я считаю, возможно, один DataAdapter может обрабатывать только одну таблицу базы данных, а обновление работает только в этой таблице. Следовательно, многозадачный DataSet потребует, чтобы соответствующие DataAdapters вызывали свое обновление для полного обновления DataSet. Это так?

И, наконец, будут ли внешние отношения и противоречия внешнего ключа содержать в DataSet (каскадное удаление, каскадное обновление) автоматически?

Возможно, ссылка на пример или учебник может помочь. Большое спасибо!

ответ

6

Может быть это статья поможет:

После официальных статей также очень полезная информация:

Посмотрите на "Наполнение DataSet из нескольких DataAdapters" раздел в статье выше.

+1

+1 за хороший ответ – Singleton

4
  1. Да, это правда, что один адаптер для одного table.But

  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. Наконец каскадное обновление удалять обрабатывается в наборе данных. Вы можете просматривать свойства связи и различных вариантов для каскада. (Типизированный набор данных)

+0

+1 за давая мне знать, что-то новое о дизайнере. Благодарю. – Jake

Смежные вопросы