2013-01-02 34 views
6

Utworzono usługę sieci Web, która zwraca jako wynik dwa zestawy danych (typ zwracany). Czy można połączyć dwa zbiory danych w jeden, aby można było wyświetlić go na jednym zestawie danych? Próbuję użyć arraylist, ale nic nie zwraca w datalist.Łączenie dwóch wyników zestawów danych w jeden

GetDepartureFlightsDetails() i getDepartureFlights() oba zwracają wartości zestawu danych.

Poniżej znajduje się metoda, której używam do pobierania wyników usługi sieciowej.

public ArrayList GetDepartureFlightsDetails(String departurecountry, String arrivalcountry, DateTime departuredate) 
{ 
    DLSA datalayerTS = new DLSA(); 
    DLJS datalayerJW = new DLJS(); 

    ArrayList array = new ArrayList(); 

    array.Add(datalayerSA.GetDepartureFlightsDetails(departurecountry, arrivalcountry, departuredate)); 
    array.Add(datalayerJW.getDepartureFlights(departurecountry, arrivalcountry, departuredate)); 
    return array; 
} 
+0

FredHomme zmienić deklarację tablicy na coś takiego ArrayList arList = new ArrayList(); powinno to uczynić to łatwiejszym i bardziej czytelnym w odniesieniu do tablicy powrotu nie mylić jako Array vs typ zwracany z typu ArrayList tylko propozycja – MethodMan

+0

Ok. Przepraszamy za złe nazewnictwo. – FredHomme

+0

tylko sugestia FredHomme – MethodMan

Odpowiedz

10

Można użyć metody DataSet.Merge:

firstDataSet.Merge(secondDataSet); 

Aktualizacja:

public DataSet GetDepartureFlightsDetails(String departurecountry, String arrivalcountry, DateTime departuredate) 
{ 
    DLSA datalayerTS = new DLSA(); 
    DLJS datalayerJW = new DLJS(); 

    var firstDataSet = datalayerSA.GetDepartureFlightsDetails(departurecountry, arrivalcountry, departuredate)); 
    var secondDataSet = datalayerJW.getDepartureFlights(departurecountry, arrivalcountry, departuredate)); 
    firstDataSet.Merge(secondDataSet); 

    return firstDataSet; 
} 
+1

+1. Właśnie to starałem się zapamiętać !! :) –

+0

uważaj na duplikaty wierszy w nowych datatable podczas łączenia. – sajanyamaha

+0

Jak dodać wyniki zbioru danych do zestawu danych? DataSet first = new DataSet(); Następnie? – FredHomme

0

nie można zrobić otoki klasy i używać List<> klasy otoki, zamiast Datasets.