2012-01-19 19 views
5

Esiste un modo semplice per convertire un Datatable in un array di stringhe multidimensionale?Datatable to Multidimensional Array

Forse usando LINQ?

Ci deve essere un modo migliore di loop manualmente attraverso tutte le colonne/righe ...

+1

C'è una buona ragione per il looping, vedere http://stackoverflow.com/questions/8918157/how-do-i-convert-a-ultsults-in-a-list-of-hashtable/8918431#8918431 –

+0

don ' pensi di ricorrere a tutti i record durante la conversione? – rerun

risposta

4

Linq è la risposta. È possibile convertire un DataTable in IEnumerable utilizzando il metodo AsEnumerable. Quindi, lo ToArray() lo converte in un array.

var tableEnumerable = DataTableName.AsEnumerable(); 
tableArray = tableEnumerable.ToArray(); 
+2

scusate, non ho mai usato LINQ prima. Sto ricevendo questo errore 'Impossibile convertire implicitamente il tipo 'System.Data.DataRow []' in 'string [*, *]'' Qualsiasi aiuto sarebbe molto apprezzato. – Greg

+0

stai ricevendo quell'errore sulla linea che ti ho dato? In tal caso, puoi suddividerlo in parti diverse (enumerable = DataTable.asenumerable(); tablearray = enumerable.toarray();) e vedere se reagisce ancora allo stesso modo. –

+0

@Greg Sto ottenendo lo stesso errore, anche con questa suddivisione su più righe. L'hai mai risolto? – Rachel

0

provare dt.Rows.Cast(). Selezionare (// datarow in stringhe)

4

yourTable.AsEnumerable(). Selezionare (riga => row.ItemArray) .ToArray()

+0

vedi il mio commento sulla risposta sopra - http://stackoverflow.com/a/8932997/585552 – Greg