Comment faire pour remplir le Dataset avec plusieurs tables?

Je suis en train de remplir un DataSet qui contient 2 tables avec un à plusieurs " de la relation.
Je suis l'aide de l'objet DataReader pour y parvenir :

    public DataSet SelectOne(int id)
    {
        DataSet result = new DataSet();
        using (DbCommand command = Connection.CreateCommand())
        {
            command.CommandText = "select * from table1";

            var param = ParametersBuilder.CreateByKey(command, "ID", id, null);
            command.Parameters.Add(param);

            Connection.Open();
            using (DbDataReader reader = command.ExecuteReader())
            {
                result.MainTable.Load(reader);
            }
            Connection.Close();
        }
        return result;
    }

Mais j'ai seulement un tableau rempli. Comment puis-je atteindre mon objectif - remplir les deux tableaux?

Je voudrais utiliser l'objet DataReader au lieu DataAdapter, si, c'est possible.

Pourquoi vous vous attendriez à ce que les deux tables sont remplies? Votre commande ne contient qu'un seul select énoncé qui renvoie un tableau unique.
Pourquoi ne pas utiliser un SqlDataAdapter et ses Fill(...) méthode au lieu de la DbCommand?
Anusev - je le sais, je suis juste en demandant à tout type de suggestion
preformanse. DataReader est rapide, DataAdapter est plus lent. Ce qui est essentiel dans mon cas
Le DataAdapter utilise également un DataReader sous le capot. stackoverflow.com/a/334667/284240 Le seul avantage d'un lecteur vous permet de lire les enregistrements un à un moment au lieu de charger tous en mémoire.

OriginalL'auteur Andriy Zak | 2012-07-05