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

DataTable

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 dopo l'8 agosto 2001 e viene utilizzato 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 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 IEnumerable<T> origine, non solo una query o una query su DataTable . Si noti che se la sequenza di origine è una query, la chiamata a questo operatore forza l'esecuzione immediata. L'enumerazione della sequenza di origine può anche provocare la 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 DataRow metadati e dai valori della tabella dei valori della colonna di DataRow . Per un oggetto tipizzato DataTable , i tipi non vengono conservati. I dati e lo schema vengono trasferiti, ma le righe risultanti della tabella di output non saranno del tipo tipizzato DataRow . Le RowState RowError proprietà e non vengono mantenute durante la copia dall'origine DataRow all'oggetto restituito 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 .

La tabella generata restituita dal metodo ha il nome di tabella predefinito. Se si desidera assegnare un nome al DataTable , collegarlo a un DataSet o eseguire qualsiasi altra DataTable operazione specifica, è necessario eseguire questa operazione dopo la creazione e la restituzione della tabella.

Per ulteriori informazioni, vedere creazione di un oggetto DataTable 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 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> origine, non solo una query su DataTable . Si noti che se la sequenza di origine è una query, la chiamata a questo operatore forza l'esecuzione immediata. L'enumerazione della sequenza di origine può anche provocare la 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 DataRow metadati e dai valori della tabella dei valori della colonna di DataRow . Per un oggetto tipizzato DataTable , i tipi non vengono conservati. I dati e lo schema vengono trasferiti, ma le righe risultanti della tabella di output non saranno del tipo tipizzato DataRow . Le RowState RowError proprietà e non vengono mantenute durante la copia dall'origine DataRow all'oggetto restituito 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 .

La tabella generata restituita dal metodo ha il nome di tabella predefinito. Se si desidera assegnare un nome al DataTable , collegarlo a un DataSet o eseguire qualsiasi altra DataTable operazione specifica, è necessario eseguire questa operazione dopo la creazione e la restituzione della tabella.

Per ulteriori informazioni, vedere creazione di un oggetto DataTable 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 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> origine, non solo una query su DataTable . Si noti che se la sequenza di origine è una query, la chiamata a questo operatore forza l'esecuzione immediata. L'enumerazione della sequenza di origine può anche provocare la 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 DataRow metadati e dai valori della tabella dei valori della colonna di DataRow . Per un oggetto tipizzato DataTable , i tipi non vengono conservati. I dati e lo schema vengono trasferiti, ma le righe risultanti della tabella di output non saranno del tipo tipizzato DataRow . Le RowState RowError proprietà e non vengono mantenute durante la copia dall'origine DataRow all'oggetto restituito 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 .

La tabella generata restituita dal metodo ha il nome di tabella predefinito. Se si desidera assegnare un nome al DataTable , collegarlo a un DataSet 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, errorHandler viene chiamato il delegato. Un oggetto FillErrorEventArgs viene passato al errorHandler delegato con i valori seguenti:

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

  • La DataTable proprietà viene impostata sulla destinazione DataTable .

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

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

Per ulteriori informazioni, vedere creazione di un oggetto DataTable da una query.

Si applica a