Vraag : Hoe combineer ik 2 List in een DataTable gebruikend LINQ?

Hallo:

I am proberen 2 gegevensbronnen in een DataTable te combineren die/>The- gegevensbronnen LINQ gebruiken en CopyToDataTable.
>.



//de lijst & columns
DataTable;

Travelers = nieuwe DataTable („Reizigers“); kolom
DataColumn;
column = nieuwe DataColumn („FullName“, Type.GetType („System.String“));
Travelers.Columns.Add (column);
column = nieuwe DataColumn („IsFreePlace“, Type.GetType („System.Boolean“));
Travelers.Columns.Add (column);
column = nieuwe DataColumn („IndividualPaymentAmount " , Type.GetType („System.Decimal“));
Travelers.Columns.Add (column); />//de Vraag


////////////////////////////////////////////////////////////////////////////////////////////////////
//
//Heeft de volgende vorm:
//
//  ListOfItems --> ListA, int>>
//Informatie/>//
ListB, decimal>>
//
//
////////////////////////////////////////////////////////////////////////////////////////////////////
var = (van pax in ListOfItems
van pInfo in Information
waar pax. Uitgezochte nieuw pInfo.Key.TravelerID
{pax. Key.FirstName,
pax. Key.LastName,
pax. Key.IsFreePlace,
pInfo.Value}); />//Opslag


Travelers = query.CopyToDataTableRow> ();


////////////////////////////////////////////////////////////////////////////////////////////////////
//wanneer ik bovengenoemd probeer, krijg ik de volgende compilerfout: het argument van de Instantie
////////////////////////////////////////////////////////////////////////////////////////////////////
Error 31: kan niet van „System.Collections.Generic.IEnumerableousType#1>“ in 'System.Collections.Generic.IEnumerable.Data.DataRow>'< br/>
Error 30 „omzetten System.Collections.Generic.IEnumerableousType#1>“ geen definitie voor „CopyToDataTable“ en de beste overbelasting „System.Data.DataTableExtensions van de uitbreidingsmethode bevatten. CopyToDataTable (System. Collections. Generic.IEnumerable)“ heeft wat ongeldige arguments

////////////////////////////////////////////////////////////////////////////////////////////////////
Next, probeerde ik het volgende:
////////////////////////////////////////////////////////////////////////////////////////////////////
IEnumerable vraag = (van pax in ListOfItems
van pInfo in Information
waar pax. Uitgezochte nieuw pInfo.Key.TravelerID
{pax. Key.FirstName,
pax. Key.LastName,
pax. Key.IsFreePlace,
pInfo.Value});

////////////////////////////////////////////////////////////////////////////////////////////////////
//wanneer ik bovengenoemd probeer, krijg ik de volgende compilerfout:
////////////////////////////////////////////////////////////////////////////////////////////////////
kan type „System.Collections.Generic.IEnumerableousType#1>“ in „System.Collections.Generic.IEnumerable.Data.DataRow>“ impliciet omzetten niet. Een expliciete omzetting bestaat (bent u die een gietvorm missen?)



I kan de 1st methode gemakkelijk enkel gebruiken, en dan met een foreachlijn, maar I would
like herhalen proberen om de () methode CopyToDatTable van System.Data.DataTableExtensions.


Thanks te gebruiken vooraf,
JohnB

Antwoord : Hoe combineer ik 2 List in een DataTable gebruikend LINQ?

Hallo jxbma;

De vraag u probeert om zijn resultaten uit te voeren en te vullen in een DataTable met zal niet werken. De syntaxis voor CopyToDataTable is als volgt:

Gedeelde Overheidsfunctie CopyToDataTable (van T als DataRow) (_
      bron als IEnumerable (van T) _
) Als DataTable

Maar wat u hebt is het volgende:

var vraag = (van pax in ListOfItems
                   van pInfo in Informatie
                   waar pax. Waarde == pInfo.Key.TravelerID
                   selecteer nieuw {pax. Key.FirstName,
                                        pax. Key.LastName,
                                        pax. Key.IsFreePlace,
                                        pInfo.Value});

Welke het type van de vraag van Anoniem type is zoals kan worden gezien van de uitgezochte clausule waar u het sleutelwoord nieuw zonder een type gebruikt. Wanneer u Lijst vraagt twee is de resultaten van één of andere Lijst of IEnumerable. Er is geen functie die een Lijst in een DataRow van een DataTable zal omzetten.

De oplossing zal aan lijn door de resultaten zijn en zal tot een DataRow van DataTable voor elk element van het geplaatste resultaat leiden.

Fernando

Andere oplossingen  
 
programming4us programming4us