DataTableExtensions.CopyToDataTable DataTableExtensions.CopyToDataTable DataTableExtensions.CopyToDataTable DataTableExtensions.CopyToDataTable Method

Definizione

Restituisce un oggetto DataTable che contiene copie degli oggetti DataRow, dato un oggetto IEnumerable<T> di input.Returns a DataTable that contains copies of the DataRow objects, given an input IEnumerable<T> object.

Overload

CopyToDataTable<T>(IEnumerable<T>) CopyToDataTable<T>(IEnumerable<T>) CopyToDataTable<T>(IEnumerable<T>) 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.Returns a DataTable that contains copies of the DataRow objects, given an input IEnumerable<T> object where the generic parameter T is DataRow.

CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption) 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.Copies DataRow objects to the specified DataTable, given an input IEnumerable<T> object where the generic parameter T is DataRow.

CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler) 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.Copies DataRow objects to the specified DataTable, given an input IEnumerable<T> object where the generic parameter T is DataRow.

CopyToDataTable<T>(IEnumerable<T>) CopyToDataTable<T>(IEnumerable<T>) CopyToDataTable<T>(IEnumerable<T>) 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.Returns a DataTable that contains copies of the DataRow objects, given an input IEnumerable<T> object where the generic parameter T is DataRow.

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.The type of objects in the source sequence, typically DataRow.

Parametri

Restituisce

Oggetto DataTable che contiene la sequenza di input come tipo di oggetti DataRow.A DataTable that contains the input sequence as the type of DataRow objects.

Eccezioni

La sequenza IEnumerable<T> di origine è null e non è possibile creare una nuova tabella.The source IEnumerable<T> sequence is null and a new table cannot be created.

Un oggetto DataRow nella sequenza di origine ha lo stato impostato su Deleted.A DataRow in the source sequence has a state of Deleted.

La sequenza di origine non contiene alcun oggetto DataRow.The source sequence does not contain any DataRow objects.

Un oggetto DataRow nella sequenza di origine è null.A DataRow in the source sequence is null.

Esempi

Nell'esempio seguente viene eseguita una query sulla tabella SalesOrderHeader per gli ordini dopo l'8 agosto 2001 CopyToDataTable e viene utilizzato il DataTable metodo per creare un oggetto da tale query.The following example queries the SalesOrderHeader table for orders after August 8, 2001, and uses the CopyToDataTable method to create a DataTable from that query. DataTable viene quindi associato a BindingSource, che funge da proxy per DataGridView.The DataTable is then bound to a BindingSource, which acts as proxy for a 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 T del parametro source di input può essere solo di tipo DataRow o di un tipo derivato DataRowda.The parameter T of the input parameter source can only be of type DataRow or a type derived from DataRow.

La sequenza di input può essere IEnumerable<T> qualsiasi origine, non solo una query o una query DataTablesu.The input sequence can be any IEnumerable<T> source, not only a query or a query over a DataTable. Si noti che se la sequenza di origine è una query, la chiamata a questo operatore forza l'esecuzione immediata.Note that if the source sequence is a query, calling this operator will force immediate execution. L'enumerazione della sequenza di origine può anche provocare la generazione di eccezioni.Enumerating the source sequence can also cause exceptions to be thrown.

Lo schema della tabella di destinazione è basato sullo schema della prima DataRow riga nella sequenza di origine.The schema of the destination table is based on the schema of the first DataRow row in the source sequence. I metadati della tabella vengono estratti dai DataRow metadati e dai valori della tabella DataRowdei valori della colonna di.The table metadata is extracted from the DataRow metadata and the table values from the column values of the DataRow. Per un oggetto DataTabletipizzato, i tipi non vengono conservati.For a typed DataTable, types are not preserved. I dati e lo schema vengono trasferiti, ma le righe risultanti della tabella di output non saranno del tipo DataRow tipizzato.The data and schema are transferred, but the resulting rows of the output table will not be of the typed DataRow type. Le RowState proprietà RowError e non vengono mantenute durante la copia dall'origine DataRow all'oggetto restituito DataTable.The RowState and RowError properties are not preserved during the copy from the source DataRow to the returned DataTable.

Quando un riferimento null o un tipo nullable con valore null viene trovato in un'origine DataRow, questo metodo sostituisce il valore nella destinazione DataTable con un valore di Value.When a null reference or nullable type with a value of null is found in a source DataRow, this method replaces the value in the destination DataTable with a value of Value.

La tabella generata restituita dal metodo ha il nome di tabella predefinito.The generated table returned by the method has the default table name. Se si desidera assegnare un nome DataTableal, collegarlo a DataSetun o eseguire qualsiasi altra DataTable operazione specifica, è necessario eseguire questa operazione dopo la creazione e la restituzione della tabella.If you want to name the DataTable, attach it to a DataSet, or perform any other DataTable specific operation, you must do so after the table is created and returned.

Per ulteriori informazioni, vedere creazione di un oggetto DataTable da una query.For more information, see Creating a DataTable From a Query.

CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption) 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.Copies DataRow objects to the specified DataTable, given an input IEnumerable<T> object where the generic parameter T is 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.The type of objects in the source sequence, typically DataRow.

Parametri

table
DataTable DataTable DataTable DataTable

DataTable di destinazione.The destination DataTable.

options
LoadOption LoadOption LoadOption LoadOption

Enumerazione LoadOption che specifica le opzioni di caricamento di DataTable.A LoadOption enumeration that specifies the DataTable load options.

Eccezioni

Gli oggetti DataRow copiati non si adattano allo schema dell'oggetto DataTable di destinazione.The copied DataRow objects do not fit the schema of the destination DataTable.

La sequenza IEnumerable<T> di origine è null o l'oggetto DataTable di destinazione è null.The source IEnumerable<T> sequence is null or the destination DataTable is null.

Un oggetto DataRow nella sequenza di origine ha lo stato impostato su Deleted.A DataRow in the source sequence has a state of Deleted.

La sequenza di origine non contiene alcun oggetto DataRow.The source sequence does not contain any DataRow objects.

Un oggetto DataRow nella sequenza di origine è null.A DataRow in the source sequence is null.

Commenti

Il parametro T del parametro source di input può essere solo di tipo DataRowo un tipo derivato da DataRow.The parameter T of the input parameter source can only be of type DataRow, or a type derived from DataRow.

La sequenza di input può essere IEnumerable<T> qualsiasi origine, non solo una query DataTablesu.The input sequence can be any IEnumerable<T> source, not only a query over a DataTable. Si noti che se la sequenza di origine è una query, la chiamata a questo operatore forza l'esecuzione immediata.Note that if the source sequence is a query, calling this operator will force immediate execution. L'enumerazione della sequenza di origine può anche provocare la generazione di eccezioni.Enumerating the source sequence can also cause exceptions to be thrown.

Lo schema della tabella di destinazione è basato sullo schema della prima DataRow riga nella sequenza di origine.The schema of the destination table is based on the schema of the first DataRow row in the source sequence. I metadati della tabella vengono estratti dai DataRow metadati e dai valori della tabella DataRowdei valori della colonna di.The table metadata is extracted from the DataRow metadata and the table values from the column values of the DataRow. Per un oggetto DataTabletipizzato, i tipi non vengono conservati.For a typed DataTable, types are not preserved. I dati e lo schema vengono trasferiti, ma le righe risultanti della tabella di output non saranno del tipo DataRow tipizzato.The data and schema are transferred, but the resulting rows of the output table will not be of the typed DataRow type. Le RowState proprietà RowError e non vengono mantenute durante la copia dall'origine DataRow all'oggetto restituito DataTable.The RowState and RowError properties are not preserved during the copy from the source DataRow to the returned DataTable.

Quando un riferimento null o un tipo nullable con valore null viene trovato in un'origine DataRow, questo metodo sostituisce il valore nella destinazione DataTable con un valore di Value.When a null reference or nullable type with a value of null is found in a source DataRow, this method replaces the value in the destination DataTable with a value of Value.

La tabella generata restituita dal metodo ha il nome di tabella predefinito.The generated table returned by the method has the default table name. Se si desidera assegnare un nome DataTableal, collegarlo a DataSetun o eseguire qualsiasi altra DataTable operazione specifica, è necessario eseguire questa operazione dopo la creazione e la restituzione della tabella.If you want to name the DataTable, attach it to a DataSet, or perform any other DataTable specific operation, you must do so after the table is created and returned.

Per ulteriori informazioni, vedere creazione di un oggetto DataTable da una query.For more information, see Creating a DataTable From a Query.

CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler) 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.Copies DataRow objects to the specified DataTable, given an input IEnumerable<T> object where the generic parameter T is 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;
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.The type of objects in the source sequence, typically DataRow.

Parametri

table
DataTable DataTable DataTable DataTable

DataTable di destinazione.The destination DataTable.

options
LoadOption LoadOption LoadOption LoadOption

Enumerazione LoadOption che specifica le opzioni di caricamento di DataTable.A LoadOption enumeration that specifies the DataTable load options.

errorHandler
FillErrorEventHandler FillErrorEventHandler FillErrorEventHandler FillErrorEventHandler

Delegato FillErrorEventHandler che rappresenta il metodo che gestirà un errore.A FillErrorEventHandler delegate that represents the method that will handle an error.

Eccezioni

Gli oggetti DataRow copiati non si adattano allo schema dell'oggetto DataTable di destinazione.The copied DataRow objects do not fit the schema of the destination DataTable.

La sequenza IEnumerable<T> di origine è null o l'oggetto DataTable di destinazione è null.The source IEnumerable<T> sequence is null or the destination DataTable is null.

Un oggetto DataRow nella sequenza di origine ha lo stato impostato su Deleted.A DataRow in the source sequence has a state of Deleted.

-oppure--or- La sequenza di origine non contiene alcun oggetto DataRow.The source sequence does not contain any DataRow objects.

-oppure--or- Un oggetto DataRow nella sequenza di origine è null.A DataRow in the source sequence is null.

Commenti

Il parametro T del parametro source di input può essere solo di tipo DataRowo un tipo derivato da DataRow.The parameter T of the input parameter source can only be of type DataRow, or a type derived from DataRow.

La sequenza di input può essere IEnumerable<T> qualsiasi origine, non solo una query DataTablesu.The input sequence can be any IEnumerable<T> source, not only a query over a DataTable. Si noti che se la sequenza di origine è una query, la chiamata a questo operatore forza l'esecuzione immediata.Note that if the source sequence is a query, calling this operator will force immediate execution. L'enumerazione della sequenza di origine può anche provocare la generazione di eccezioni.Enumerating the source sequence can also cause exceptions to be thrown.

Lo schema della tabella di destinazione è basato sullo schema della prima DataRow riga nella sequenza di origine.The schema of the destination table is based on the schema of the first DataRow row in the source sequence. I metadati della tabella vengono estratti dai DataRow metadati e dai valori della tabella DataRowdei valori della colonna di.The table metadata is extracted from the DataRow metadata and the table values from the column values of the DataRow. Per un oggetto DataTabletipizzato, i tipi non vengono conservati.For a typed DataTable, types are not preserved. I dati e lo schema vengono trasferiti, ma le righe risultanti della tabella di output non saranno del tipo DataRow tipizzato.The data and schema are transferred, but the resulting rows of the output table will not be of the typed DataRow type. Le RowState proprietà RowError e non vengono mantenute durante la copia dall'origine DataRow all'oggetto restituito DataTable.The RowState and RowError properties are not preserved during the copy from the source DataRow to the returned DataTable.

Quando un riferimento null o un tipo nullable con valore null viene trovato in un'origine DataRow, questo metodo sostituisce il valore nella destinazione DataTable con un valore di Value.When a null reference or nullable type with a value of null is found in a source DataRow, this method replaces the value in the destination DataTable with a value of Value.

La tabella generata restituita dal metodo ha il nome di tabella predefinito.The generated table returned by the method has the default table name. Se si desidera assegnare un nome DataTableal, collegarlo a DataSetun o eseguire qualsiasi altra DataTable operazione specifica, è necessario eseguire questa operazione dopo la creazione e la restituzione della tabella.If you want to name the DataTable, attach it to a DataSet, or perform any other DataTable specific operation, you must do so after the table is created and returned.

Se viene generata un'eccezione durante la copia di una riga di dati nella tabella di destinazione, ad esempio un'eccezione di vincolo errorHandler , viene chiamato il delegato.If an exception is thrown during the copy of a data row into the target table, such as a constraint exception, the errorHandler delegate is called. Un FillErrorEventArgs oggetto viene passato errorHandler al delegato con i valori seguenti:A FillErrorEventArgs is passed to the errorHandler delegate with the following values:

  • La Values proprietà è impostata su una copia dei dati di origine.The Values property is set to a copy of the source data.

  • La DataTable proprietà viene impostata sulla destinazione DataTable.The DataTable property is set to the target DataTable.

  • La Errors proprietà è impostata sull'eccezione intercettata.The Errors property is set to the caught exception.

La Continue proprietà viene letta dopo la restituzione della chiamata al delegato.The Continue property is read after the delegate call returns. Se la Continue proprietà è true, la sequenza di origine continua a essere enumerata e caricata nella tabella dati.If the Continue property is true, the source sequence continues to be enumerated and loaded into the data table. Se la Continue proprietà è false, l' CopyToDataTable eccezione originale viene generata dal metodo.If the Continue property is false, the original exception is thrown from the CopyToDataTable method.

Per ulteriori informazioni, vedere creazione di un oggetto DataTable da una query.For more information, see Creating a DataTable From a Query.

Si applica a