Esporta (0) Stampa
Espandi tutto
Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale

Metodo DataTableExtensions.CopyToDataTable<T> (IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler)

Copia gli oggetti DataRow nell'oggetto DataTable specificato, dato un oggetto IEnumerable<T> di input dove 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 di tipo

T

Tipo di oggetti contenuti nella sequenza di origine, in genere DataRow.

Parametri

source
Tipo: System.Collections.Generic.IEnumerable<T>
Sequenza IEnumerable<T> di origine.
table
Tipo: System.Data.DataTable
DataTable di destinazione.
options
Tipo: System.Data.LoadOption
Enumerazione LoadOption che specifica le opzioni di caricamento di DataTable.
errorHandler
Tipo: System.Data.FillErrorEventHandler
Delegato FillErrorEventHandler che rappresenta il metodo che gestirà un errore.

Nota sull'utilizzo

In Visual Basic e C# è possibile chiamare questo metodo come metodo di istanza su qualsiasi oggetto di tipo IEnumerable<T>. Per chiamare il metodo utilizzando la sintassi del metodo di istanza, omettere il primo parametro. Per ulteriori informazioni, vedere Metodi di estensione (Visual Basic) o Metodi di estensione (Guida per programmatori C#).

EccezioneCondizione
ArgumentException

Gli oggetti DataRow copiati non si adattano allo schema dell'oggetto DataTable di destinazione.

ArgumentNullException

La sequenza IEnumerable<T> di origine è null o l'oggetto DataTable di destinazione è null.

InvalidOperationException

Un oggetto DataRow nella sequenza di origine ha lo stato impostato su Deleted.

- oppure -

La sequenza di origine non contiene alcun oggetto DataRow.

- oppure -

Un oggetto DataRow nella sequenza di origine è null.

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

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

Lo schema della tabella di destinazione è basato sullo schema della prima riga DataRow nella sequenza di origine. I metadati della tabella vengono estratti dai metadati di DataRow e i valori della tabella dai valori di colonna dell'oggetto DataRow. Per un oggetto DataTable tipizzato, i tipi non vengono mantenuti. I dati e lo schema vengono trasferiti, ma le righe risultanti della tabella di output non saranno del tipo DataRow tipizzato. Le proprietà RowState e RowError non vengono mantenute durante la copia dall'oggetto DataRow di origine all'oggetto DataTable restituito.

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

La tabella generata restituita dal metodo ha il nome di tabella predefinito. Se si desidera denominare l'oggetto DataTable, associarlo a un oggetto DataSet o eseguire qualsiasi altra operazione DataTable specifica, è necessario che la tabella venga prima creata e restituita.

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

  • La proprietà Values viene impostata su una copia dei dati di origine.

  • La proprietà DataTable viene impostata sull'oggetto DataTable di destinazione.

  • La proprietà Errors viene impostata sull'eccezione intercettata.

La proprietà Continue viene letta dopo la restituzione della chiamata al delegato. Se la proprietà Continue è true, la sequenza di origine continua a essere enumerata e caricata nella tabella dati. Se la proprietà Continue è false, l'eccezione originale viene generata dal metodo CopyToDataTable.

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

.NET Framework

Supportato in: 4.5.2, 4.5.1, 4.5, 4, 3.5

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (ruoli di base del server non supportati), Windows Server 2008 R2 (ruoli di base del server supportati con SP1 o versione successiva, Itanium non supportato)

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

Aggiunte alla community

AGGIUNGI
Mostra:
© 2014 Microsoft