Condividi tramite


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

Origine:
DataTableExtensions.cs
Origine:
DataTableExtensions.cs
Origine:
DataTableExtensions.cs

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 all'8 agosto 2001 e viene utilizzato il CopyToDataTable metodo per creare un DataTable oggetto 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 di tipo DataRow o un tipo derivato da DataRow.

La sequenza di input può essere qualsiasi IEnumerable<T> origine, non solo una query o una query su un oggetto 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 causare la generazione di eccezioni.

Lo schema della tabella di destinazione è basato sullo schema della prima DataRow riga nella sequenza di origine. I metadati della DataRow tabella vengono estratti dai metadati e dai valori della tabella dai valori di colonna dell'oggetto DataRow. Per un tipo , DataTablei tipi non vengono mantenuti. 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 .Value

La tabella generata restituita dal metodo ha il nome di tabella predefinito. Se si desidera assegnare un DataTablenome a , 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)

Origine:
DataTableExtensions.cs
Origine:
DataTableExtensions.cs
Origine:
DataTableExtensions.cs

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 di tipo DataRowsolo o un tipo derivato da DataRow.

La sequenza di input può essere qualsiasi IEnumerable<T> origine, non solo una query su un oggetto 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 causare la generazione di eccezioni.

Lo schema della tabella di destinazione è basato sullo schema della prima DataRow riga nella sequenza di origine. I metadati della DataRow tabella vengono estratti dai metadati e dai valori della tabella dai valori di colonna dell'oggetto DataRow. Per un tipo , DataTablei tipi non vengono mantenuti. 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 .Value

La tabella generata restituita dal metodo ha il nome di tabella predefinito. Se si desidera assegnare un DataTablenome a , 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)

Origine:
DataTableExtensions.cs
Origine:
DataTableExtensions.cs
Origine:
DataTableExtensions.cs

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 di tipo DataRowsolo o un tipo derivato da DataRow.

La sequenza di input può essere qualsiasi IEnumerable<T> origine, non solo una query su un oggetto 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 causare la generazione di eccezioni.

Lo schema della tabella di destinazione è basato sullo schema della prima DataRow riga nella sequenza di origine. I metadati della DataRow tabella vengono estratti dai metadati e dai valori della tabella dai valori di colonna dell'oggetto DataRow. Per un tipo , DataTablei tipi non vengono mantenuti. 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 .Value

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

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

  • La DataTable proprietà è impostata sulla destinazione DataTable.

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

La Continue proprietà viene letta dopo la restituzione della chiamata del 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 altre informazioni, vedere Creazione di una tabella dati da una query.

Si applica a