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>, DataTable, LoadOption, FillErrorEventHandler)

 

Data di pubblicazione: novembre 2016

Copie DataRow oggetti nell'oggetto DataTable, 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 void CopyToDataTable<T>(
	this IEnumerable<T> source,
	DataTable table,
	LoadOption options,
	FillErrorEventHandler errorHandler
)
where T : DataRow

Parametri

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

L'origine IEnumerable<T> sequenza.

table
Type: System.Data.DataTable

Il DataTable di destinazione.

options
Type: System.Data.LoadOption

Oggetto LoadOption enumerazione che specifica il DataTable Opzioni di carico.

errorHandler
Type: System.Data.FillErrorEventHandler

Oggetto FillErrorEventHandler delegato che rappresenta il metodo che gestirà un errore.

Parametri tipo

T

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

Exception Condition
ArgumentException

Copiato DataRow oggetti non rientrano lo schema della destinazione DataTable.

ArgumentNullException

L'origine IEnumerable<T> sequenza null o sulla destinazione DataTable è null.

InvalidOperationException

Oggetto DataRow nell'origine sequenza presenta uno stato Deleted.

-oppure-

La sequenza di origine non contiene DataRow oggetti.

-oppure-

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 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.

Se viene generata un'eccezione durante la copia di una riga di dati nella tabella di destinazione, ad esempio un'eccezione di vincolo, il errorHandler delegato viene chiamato. Oggetto FillErrorEventArgs viene passato per il errorHandler delegato con i valori seguenti:

  • Il Values è impostata su una copia dei dati di origine.

  • Il DataTable proprietà è impostata per la destinazione DataTable.

  • Il Errors proprietà è impostata sull'eccezione intercettata.

Il Continue proprietà è di lettura al termine della chiamata di delegato. Se il Continue è true, la sequenza di origine continua a essere enumerata e caricata nella tabella dati. Se il Continue è false, viene generata l'eccezione originale di CopyToDataTable<T> metodo.

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

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