Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo DataTableExtensions.CopyToDataTable<T>(IEnumerable<T>)

 

Data di pubblicazione: ottobre 2016

Restituisce un DataTable che contiene copie del DataRow oggetti, dato un input IEnumerable<T> oggetto in cui il parametro generico T è DataRow.

Spazio dei nomi:   System.Data
Assembly:  System.Data.DataSetExtensions (in System.Data.DataSetExtensions.dll)

public static DataTable CopyToDataTable<T>(
	this IEnumerable<T> source
)
where T : DataRow

Parametri

source
Type: System.Collections.Generic.IEnumerable<T>

L'origine IEnumerable<T> sequenza.

Valore restituito

Type: System.Data.DataTable

Oggetto DataTable che contiene la sequenza di input come tipo di DataRow oggetti.

Parametri tipo

T

Il tipo di oggetti nell'origine sequenza, in genere DataRow.

Exception Condition
ArgumentNullException

L'origine IEnumerable<T> sequenza è null e non è possibile creare una nuova tabella.

InvalidOperationException

Oggetto DataRow nell'origine sequenza presenta uno stato Deleted.

La sequenza di origine non contiene DataRow oggetti.

Oggetto DataRow nell'origine sequenza è null.

Il parametro T del parametro di input source può essere solo di tipo DataRow o un tipo derivato da DataRow.

La sequenza di input può essere qualsiasi IEnumerable<T> di origine, non solo una query o una query su un DataTable. Si noti che se la sequenza di origine è una query, la chiamata di questo operatore forzerà l'esecuzione immediata. L'enumerazione della sequenza di origine può causare la generazione di eccezioni.

Lo schema della tabella di destinazione è basato sullo schema del primo DataRow riga nella sequenza di origine. I metadati della tabella viene estratto da di DataRow valori dai valori di colonna di metadati e nella tabella di DataRow. Per un oggetto tipizzato DataTable, tipi non vengono mantenuti. Vengono trasferiti i dati e schema, ma le righe della tabella di output risultante non sarà dell'oggetto tipizzato DataRow tipo. Il RowState e RowError non vengono mantenute durante la copia dall'origine DataRow restituito DataTable.

Quando un null riferimento o un tipo nullable con un valore di null viene trovata in un'origine DataRow, questo metodo sostituisce il valore nella destinazione DataTable con un valore di Value.

La tabella generata restituita dal metodo ha il nome di tabella predefinito. Se si desidera assegnare un nome di DataTable, associarlo a un DataSet, o eseguire qualsiasi altra DataTable operazione specifica, è necessario farlo dopo la tabella viene creata e restituita.

Per altre informazioni, vedere Creazione di una DataTable da una query (LINQ to DataSet).

Nell'esempio seguente viene eseguita una query sulla tabella SalesOrderHeader per gli ordini dopo l'8 agosto 2001 e utilizza il CopyToDataTable metodo per creare un DataTable dalla query. DataTable viene quindi associato a BindingSource, che funge da proxy per DataGridView.

// Bind the System.Windows.Forms.DataGridView object
// to the System.Windows.Forms.BindingSource object.
dataGridView.DataSource = bindingSource;

// Fill the DataSet.
DataSet ds = new DataSet();
ds.Locale = CultureInfo.InvariantCulture;
FillDataSet(ds);

DataTable orders = ds.Tables["SalesOrderHeader"];

// Query the SalesOrderHeader table for orders placed 
// after August 8, 2001.
IEnumerable<DataRow> query =
    from order in orders.AsEnumerable()
    where order.Field<DateTime>("OrderDate") > new DateTime(2001, 8, 1)
    select order;

// Create a table from the query.
DataTable boundTable = query.CopyToDataTable<DataRow>();

// Bind the table to a System.Windows.Forms.BindingSource object, 
// which acts as a proxy for a System.Windows.Forms.DataGridView object.
bindingSource.DataSource = boundTable;

.NET Framework
Disponibile da 3.5
Torna all'inizio
Mostra: