2010-02-03 12 views

Respuesta

19

Mi primera pregunta sería ¿por qué? La solicitud no tiene sentido.

La respuesta es:

DataRow[] rows = myDataTable.Select(); 
+0

Esto no parece copiar cualquier fila con RowState == DataRowState.Deleted – Alex

+1

@Alex: Eso es porque una fila con un estado 'Eliminado' ya no se considera parte de la tabla. Si desea verificar, compare '.Select()' con 'table.Rows.Count'. Descubrirás que son idénticos. –

+0

¡ERES IMPRESIONANTE! –

2

En realidad, el DataTable tiene una propiedad llamada Filas, bruja proporciona los métodos para hacer esto.

Usted puede lograr esto haciendo:

List<System.Data.DataRow> r = d.Rows.AsQueryable().OfType<System.Data.DataRow>().ToList(); 
+0

Votado porque estaba buscando el modo "LINQ" ... ¡Gracias! –

1

DataTable.Select() le ofrece una gran variedad de DataRows. Usted puede utilizar esto como una matriz

Dim dt As New DataTable 
Dim dr() As DataRow = dt.Select() 

En caso de que quiera un ArrayList, puede

public ArrayList ConvertDT(ref DataTable dt) 
{ 
     ArrayList converted = new ArrayList(dt.Rows.Count); 
     foreach (DataRow row in dt.Rows) 
     { 
       converted.Add(row); 
     } 
     return converted; 
} 

no he utilizado la función dt.rows.CopyTo. tal vez eso también funciona

0

Si desea ver el contenido como una cadena, utilice este código:

string.Join(",", dataTable.AsEnumerable().SelectMany(row => row.ItemArray)) 
Cuestiones relacionadas