Ho bisogno di copiare un dataview in un datatable. Sembra che l'unico modo per farlo sia quello di scorrere l'oggetto dataview per elemento e copiarlo su un datatable. Ci deve essere un modo migliore.Il modo più semplice per copiare una vista dati su un datatable in C#?
13
A
risposta
36
dt = DataView.ToTable()
O
dt = DataView.Table.Copy()
,
O
dt = DataView.Table.Clone()
;
3
La risposta non funziona per la mia situazione perché ho colonne con espressioni. DataView.ToTable()
copierà solo i valori, non le espressioni.
Per prima cosa ho provato questo:
//clone the source table
DataTable filtered = dt.Clone();
//fill the clone with the filtered rows
foreach (DataRowView drv in dt.DefaultView)
{
filtered.Rows.Add(drv.Row.ItemArray);
}
dt = filtered;
ma questa soluzione era molto lento, anche solo per 1000 righe.
La soluzione che ha funzionato per me è:
//create a DataTable from the filtered DataView
DataTable filtered = dt.DefaultView.ToTable();
//loop through the columns of the source table and copy the expression to the new table
foreach (DataColumn dc in dt.Columns)
{
if (dc.Expression != "")
{
filtered.Columns[dc.ColumnName].Expression = dc.Expression;
}
}
dt = filtered;
Problemi correlati
- 1. Il modo più semplice per copiare/duplicare un database RethinkDB?
- 2. Il modo più semplice per copiare int a byte []
- 3. Modo più semplice per creare un memorandware C++ da (char *, size_t), senza copiare i dati?
- 4. Il modo più semplice per convertire un URL in un collegamento ipertestuale in una stringa C#?
- 5. Il modo più semplice per leggere l'input formattato in C++?
- 6. Il modo più semplice per confrontare gli array in C#
- 7. Il modo più semplice per mantenere una struttura dati in un file in python?
- 8. ASP.NET: il modo più semplice per rendere DataTable a una stringa (HTML)?
- 9. Qual è il modo più semplice per clonare in profondità (copiare) un oggetto Scala mutabile?
- 10. Qual è il modo più semplice per ottenere dati spaziali sql 08 su una mappa?
- 11. Il modo più semplice per copiare DB di SQL Server per testare il DB?
- 12. Il modo più semplice per disegnare un'immagine?
- 13. Il modo più semplice per riprodurre mp3 da Visual C++
- 14. C'è un modo semplice per ottenere dati utente AuthComponent da una vista in CakePHP?
- 15. Il modo più semplice per incrementare una data in PHP?
- 16. Il modo più semplice per eseguire IIS su Mac?
- 17. Il modo più semplice per forzare un arresto in Swift
- 18. Qual è il modo più semplice in C# per tagliare una nuova riga da una stringa?
- 19. C#: qual è il modo più semplice per sottrarre tempo?
- 20. Il modo più efficiente di convertire un DataTable in CSV
- 21. Il modo più semplice per pubblicare su Zeroconf/Bonjour?
- 22. Il modo più semplice per realizzare un iteratore ciclico (circolatore)?
- 23. C# modo semplice per stampare i dati formattati
- 24. Il modo più efficiente per attivare una guida in C#
- 25. Il modo più veloce per copiare file in Java
- 26. Il modo più veloce per copiare un elenco di array su un altro
- 27. Qual è il modo più veloce per ottenere un DataTable in SQL Server?
- 28. Il modo più semplice per implodere() un array bidimensionale?
- 29. Il modo più veloce per copiare il contenuto di un vettore in un array?
- 30. Il modo più semplice per inserire semplici dati in un file Excel da .Net
Grazie, google mi stava venendo a mancare piuttosto male. Speriamo che questa pagina si classifichi altamente. – Ravedave
Grazie Jose ... Ha funzionato ... –
Nota: 'DataView.ToTable()' copierà solo i valori di DataView. 'DataView.Table.Copy()' copierà il DataTable di origine, non i dati filtrati di DataView. 'DataView.Table.Clone()' copierà solo la struttura del DataTable di origine. – Homer