DataTableExtensions.CopyToDataTable Metodo

Definizione

Restituisce un oggetto DataTable che contiene copie degli oggetti DataRow, dato un oggetto IEnumerable<T> di input.

Overload

CopyToDataTable<T>(IEnumerable<T>)

Restituisce un oggetto DataTable che contiene copie degli oggetti DataRow, dato un oggetto IEnumerable<T> di input dove il parametro generico DataRow è T.

CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption)

Copia gli oggetti DataRow nell'oggetto DataTable specificato, dato un oggetto IEnumerable<T> di input dove il parametro generico T è DataRow.

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.

CopyToDataTable<T>(IEnumerable<T>)

Restituisce un oggetto DataTable che contiene copie degli oggetti DataRow, dato un oggetto IEnumerable<T> di input dove il parametro generico DataRow è T.

public:
generic <typename T>
 where T : System::Data::DataRow[System::Runtime::CompilerServices::Extension]
 static System::Data::DataTable ^ CopyToDataTable(System::Collections::Generic::IEnumerable<T> ^ source);
public static System.Data.DataTable CopyToDataTable<T> (this System.Collections.Generic.IEnumerable<T> source) where T : System.Data.DataRow;
static member CopyToDataTable : seq<'T (requires 'T :> System.Data.DataRow)> -> System.Data.DataTable (requires 'T :> System.Data.DataRow)
<Extension()>
Public Function CopyToDataTable(Of T As DataRow) (source As IEnumerable(Of T)) As DataTable

Parametri di tipo

T

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

Parametri

source
IEnumerable<T>

Sequenza IEnumerable<T> di origine.

Restituisce

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

Eccezioni

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

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

La sequenza di origine non contiene alcun oggetto DataRow.

Un oggetto DataRow nella sequenza di origine è null.

Esempio

Nell'esempio seguente viene eseguita una query sulla tabella SalesOrderHeader per gli ordini successivi al 8 agosto 2001 e viene usato il CopyToDataTable metodo per creare un oggetto DataTable da tale 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;
' Bind the System.Windows.Forms.DataGridView object
' to the System.Windows.Forms.BindingSource object.
dataGridView.DataSource = bindingSource

' Fill the DataSet.
Dim ds As New DataSet()
ds.Locale = CultureInfo.InvariantCulture
' See the FillDataSet method in the Loading Data Into a DataSet topic.
FillDataSet(ds)

Dim orders As DataTable = ds.Tables("SalesOrderHeader")

' Query the SalesOrderHeader table for orders placed 
'  after August 8, 2001.
Dim query = _
    From order In orders.AsEnumerable() _
    Where order.Field(Of DateTime)("OrderDate") > New DateTime(2001, 8, 1) _
    Select order

' Create a table from the query.
Dim boundTable As DataTable = query.CopyToDataTable()

' 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

Commenti

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

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

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

Quando un riferimento Null o un tipo nullable con un valore null viene trovato 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 predefinito della tabella. Se si vuole assegnare un nome DataTablea , collegarlo a un DataSetoggetto o eseguire qualsiasi altra DataTable operazione specifica, è necessario eseguire questa operazione dopo la creazione e la restituzione della tabella.

Per altre informazioni, vedere Creazione di una tabella dati da una query.

Si applica a

CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption)

Copia gli oggetti DataRow nell'oggetto DataTable specificato, dato un oggetto IEnumerable<T> di input dove il parametro generico T è DataRow.

public:
generic <typename T>
 where T : System::Data::DataRow[System::Runtime::CompilerServices::Extension]
 static void CopyToDataTable(System::Collections::Generic::IEnumerable<T> ^ source, System::Data::DataTable ^ table, System::Data::LoadOption options);
public static void CopyToDataTable<T> (this System.Collections.Generic.IEnumerable<T> source, System.Data.DataTable table, System.Data.LoadOption options) where T : System.Data.DataRow;
static member CopyToDataTable : seq<'T (requires 'T :> System.Data.DataRow)> * System.Data.DataTable * System.Data.LoadOption -> unit (requires 'T :> System.Data.DataRow)
<Extension()>
Public Sub CopyToDataTable(Of T As DataRow) (source As IEnumerable(Of T), table As DataTable, options As LoadOption)

Parametri di tipo

T

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

Parametri

source
IEnumerable<T>

Sequenza IEnumerable<T> di origine.

table
DataTable

DataTable di destinazione.

options
LoadOption

Enumerazione LoadOption che specifica le opzioni di caricamento di DataTable.

Eccezioni

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

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

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

La sequenza di origine non contiene alcun oggetto DataRow.

Un oggetto DataRow nella sequenza di origine è null.

Commenti

Il parametro del parametro Tsource di input può essere solo di tipo o un tipo DataRowderivato da DataRow.

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

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

Quando un riferimento Null o un tipo nullable con un valore null viene trovato 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 predefinito della tabella. Se si vuole assegnare un nome DataTablea , collegarlo a un DataSetoggetto o eseguire qualsiasi altra DataTable operazione specifica, è necessario eseguire questa operazione dopo la creazione e la restituzione della tabella.

Per altre informazioni, vedere Creazione di una tabella dati da una query.

Si applica a

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.

public:
generic <typename T>
 where T : System::Data::DataRow[System::Runtime::CompilerServices::Extension]
 static void CopyToDataTable(System::Collections::Generic::IEnumerable<T> ^ source, System::Data::DataTable ^ table, System::Data::LoadOption options, System::Data::FillErrorEventHandler ^ errorHandler);
public static void CopyToDataTable<T> (this System.Collections.Generic.IEnumerable<T> source, System.Data.DataTable table, System.Data.LoadOption options, System.Data.FillErrorEventHandler errorHandler) where T : System.Data.DataRow;
public static void CopyToDataTable<T> (this System.Collections.Generic.IEnumerable<T> source, System.Data.DataTable table, System.Data.LoadOption options, System.Data.FillErrorEventHandler? errorHandler) where T : System.Data.DataRow;
static member CopyToDataTable : seq<'T (requires 'T :> System.Data.DataRow)> * System.Data.DataTable * System.Data.LoadOption * System.Data.FillErrorEventHandler -> unit (requires 'T :> System.Data.DataRow)
<Extension()>
Public Sub CopyToDataTable(Of T As DataRow) (source As IEnumerable(Of T), table As DataTable, options As LoadOption, errorHandler As FillErrorEventHandler)

Parametri di tipo

T

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

Parametri

source
IEnumerable<T>

Sequenza IEnumerable<T> di origine.

table
DataTable

DataTable di destinazione.

options
LoadOption

Enumerazione LoadOption che specifica le opzioni di caricamento di DataTable.

errorHandler
FillErrorEventHandler

Delegato FillErrorEventHandler che rappresenta il metodo che gestirà un errore.

Eccezioni

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

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

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.

Commenti

Il parametro del parametro Tsource di input può essere solo di tipo o un tipo DataRowderivato da DataRow.

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

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

Quando un riferimento Null o un tipo nullable con un valore null viene trovato 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 predefinito della tabella. Se si vuole assegnare un nome DataTablea , collegarlo a un DataSetoggetto o eseguire qualsiasi altra DataTable operazione specifica, è necessario eseguire questa operazione dopo la creazione e la restituzione della tabella.

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

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

  • La DataTable proprietà è impostata su DataTable.

  • La Errors proprietà è impostata sull'eccezione rilevata.

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

Per altre informazioni, vedere Creazione di una tabella dati da una query.

Si applica a