Ho 2 tabelle di dati, che non conosco il loro elenco di colonne di dati. Questo elenco deve essere estratto in fase di esecuzione e utilizzato per il join esterno completo.Join esterno completo, su 2 tabelle di dati, con un elenco di colonne
Quando si utilizzano queste colonne, è necessario unire le colonne tra le 2 tabelle e sono necessari tutti i dati da visualizzare.
Fino ad ora quello che sto facendo è
- Get colonne comuni, utilizzando intersecano, e l'attuazione di IEqualityComparer
- Creare un nuovo DataTable, con queste colonne, in modo che i 2 DataTable verranno fusi in questo nuovo tabella
Tuttavia, ho problemi con Linq, al 2 ° passaggio.
Fino ad ora ho:
Diventa colonne comuni
// Get common columns var commonColumns = dt1.Columns.OfType().Intersect(dt2.Columns.OfType(), new DataColumnComparer());
Crea nuova tabella di dati
// Create the result which is going to be sent to the user DataTable result = new DataTable(); // Add all the columns from both tables result.Columns.AddRange( dt1.Columns.OfType() .Union(dt2.Columns.OfType(), new DataColumnComparer()) .Select(c => new DataColumn(c.Caption, c.DataType, c.Expression, c.ColumnMapping)).ToArray());
Come posso ottenere un esterno completo efficiente accedere dinamicamente, da l'elenco delle colonne dati, che viene estratto in fase di esecuzione?
Ha funzionato come un incantesimo - evviva Matt! – Mez