DataTableExtensions.CopyToDataTable Méthode

Définition

Retourne un DataTable qui contient des copies des objets DataRow, à partir d'un objet d'entrée IEnumerable<T>.Returns a DataTable that contains copies of the DataRow objects, given an input IEnumerable<T> object.

Surcharges

CopyToDataTable<T>(IEnumerable<T>)

Retourne un DataTable qui contient des copies des objets DataRow, à partir d'un objet d'entrée IEnumerable<T> où le paramètre générique T est DataRow.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)

Copie les objets DataRow vers le DataTable spécifié, à partir d'un objet d'entrée IEnumerable<T> où le paramètre générique T est 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)

Copie les objets DataRow vers le DataTable spécifié, à partir d'un objet d'entrée IEnumerable<T> où le paramètre générique T est 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>)

Retourne un DataTable qui contient des copies des objets DataRow, à partir d'un objet d'entrée IEnumerable<T> où le paramètre générique T est DataRow.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

Paramètres de type

T

Type d’objets dans la séquence source, en général DataRow.The type of objects in the source sequence, typically DataRow.

Paramètres

source
IEnumerable<T>

Séquence IEnumerable<T> source.The source IEnumerable<T> sequence.

Retours

DataTable qui contient la séquence d'entrée comme type d'objets DataRow.A DataTable that contains the input sequence as the type of DataRow objects.

Exceptions

La séquence IEnumerable<T> source est null et une nouvelle table ne peut pas être créée.The source IEnumerable<T> sequence is null and a new table cannot be created.

Un DataRow dans la séquence source a un état Deleted.A DataRow in the source sequence has a state of Deleted.

La séquence source ne contient aucun objet DataRow.The source sequence does not contain any DataRow objects.

Un DataRow dans la séquence source est null.A DataRow in the source sequence is null.

Exemples

L’exemple suivant interroge la table SalesOrderHeader pour obtenir les commandes postérieures au 8 août 2001 et utilise la méthode CopyToDataTable pour créer une DataTable à partir de cette requête.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. Le DataTable est ensuite lié à une BindingSource qui agit en tant que proxy pour une 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

Remarques

Le paramètre T du paramètre d’entrée source peut être de type DataRow ou d’un type dérivé de DataRow.The parameter T of the input parameter source can only be of type DataRow or a type derived from DataRow.

La séquence d’entrée peut être n’importe quelle source IEnumerable<T>, pas seulement une requête ou une requête sur une DataTable.The input sequence can be any IEnumerable<T> source, not only a query or a query over a DataTable. Notez que si la séquence source est une requête, l’appel de cet opérateur force l’exécution immédiate.Note that if the source sequence is a query, calling this operator will force immediate execution. L’énumération de la séquence source peut également provoquer la levée d’exceptions.Enumerating the source sequence can also cause exceptions to be thrown.

Le schéma de la table de destination est basé sur le schéma de la première ligne DataRow dans la séquence source.The schema of the destination table is based on the schema of the first DataRow row in the source sequence. Les métadonnées de table sont extraites des métadonnées DataRow et des valeurs de table à partir des valeurs de colonne de la DataRow.The table metadata is extracted from the DataRow metadata and the table values from the column values of the DataRow. Pour un @no__t typé-0, les types ne sont pas conservés.For a typed DataTable, types are not preserved. Les données et le schéma sont transférés, mais les lignes résultantes de la table de sortie ne seront pas du type DataRow typé.The data and schema are transferred, but the resulting rows of the output table will not be of the typed DataRow type. Les propriétés RowState et RowError ne sont pas conservées lors de la copie du @no__t source-2 vers le DataTable retourné.The RowState and RowError properties are not preserved during the copy from the source DataRow to the returned DataTable.

Lorsqu’une référence null ou un type Nullable avec une valeur null est trouvé dans une source DataRow, cette méthode remplace la valeur dans le @no__t de destination-3 par la valeur 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 table générée retournée par la méthode a le nom de table par défaut.The generated table returned by the method has the default table name. Si vous souhaitez nommer le DataTable, l’attacher à une DataSet, ou effectuer toute autre opération spécifique DataTable, vous devez le faire après la création et le retour de la table.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.

Pour plus d’informations, consultez création d’un DataTable à partir d’une requête.For more information, see Creating a DataTable From a Query.

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

Copie les objets DataRow vers le DataTable spécifié, à partir d'un objet d'entrée IEnumerable<T> où le paramètre générique T est 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)

Paramètres de type

T

Type d’objets dans la séquence source, en général DataRow.The type of objects in the source sequence, typically DataRow.

Paramètres

source
IEnumerable<T>

Séquence IEnumerable<T> source.The source IEnumerable<T> sequence.

table
DataTable

DataTable de destination.The destination DataTable.

options
LoadOption

Énumération LoadOption qui spécifie les options de chargement du DataTable.A LoadOption enumeration that specifies the DataTable load options.

Exceptions

Les objets DataRow copiés ne correspondent pas au schéma du DataTable de destination.The copied DataRow objects do not fit the schema of the destination DataTable.

La séquence source IEnumerable<T> est null ou le DataTable de destination est null.The source IEnumerable<T> sequence is null or the destination DataTable is null.

Un DataRow dans la séquence source a un état Deleted.A DataRow in the source sequence has a state of Deleted.

La séquence source ne contient aucun objet DataRow.The source sequence does not contain any DataRow objects.

Un DataRow dans la séquence source est null.A DataRow in the source sequence is null.

Remarques

Le paramètre T du paramètre d’entrée source peut être de type DataRow ou d’un type dérivé de DataRow.The parameter T of the input parameter source can only be of type DataRow, or a type derived from DataRow.

La séquence d’entrée peut être n’importe quelle source IEnumerable<T>, pas seulement une requête sur une DataTable.The input sequence can be any IEnumerable<T> source, not only a query over a DataTable. Notez que si la séquence source est une requête, l’appel de cet opérateur force l’exécution immédiate.Note that if the source sequence is a query, calling this operator will force immediate execution. L’énumération de la séquence source peut également provoquer la levée d’exceptions.Enumerating the source sequence can also cause exceptions to be thrown.

Le schéma de la table de destination est basé sur le schéma de la première ligne DataRow dans la séquence source.The schema of the destination table is based on the schema of the first DataRow row in the source sequence. Les métadonnées de table sont extraites des métadonnées DataRow et des valeurs de table à partir des valeurs de colonne de la DataRow.The table metadata is extracted from the DataRow metadata and the table values from the column values of the DataRow. Pour un @no__t typé-0, les types ne sont pas conservés.For a typed DataTable, types are not preserved. Les données et le schéma sont transférés, mais les lignes résultantes de la table de sortie ne seront pas du type DataRow typé.The data and schema are transferred, but the resulting rows of the output table will not be of the typed DataRow type. Les propriétés RowState et RowError ne sont pas conservées lors de la copie du @no__t source-2 vers le DataTable retourné.The RowState and RowError properties are not preserved during the copy from the source DataRow to the returned DataTable.

Lorsqu’une référence null ou un type Nullable avec une valeur null est trouvé dans une source DataRow, cette méthode remplace la valeur dans le @no__t de destination-3 par la valeur 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 table générée retournée par la méthode a le nom de table par défaut.The generated table returned by the method has the default table name. Si vous souhaitez nommer le DataTable, l’attacher à une DataSet, ou effectuer toute autre opération spécifique DataTable, vous devez le faire après la création et le retour de la table.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.

Pour plus d’informations, consultez création d’un DataTable à partir d’une requête.For more information, see Creating a DataTable From a Query.

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

Copie les objets DataRow vers le DataTable spécifié, à partir d'un objet d'entrée IEnumerable<T> où le paramètre générique T est 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)

Paramètres de type

T

Type d’objets dans la séquence source, en général DataRow.The type of objects in the source sequence, typically DataRow.

Paramètres

source
IEnumerable<T>

Séquence IEnumerable<T> source.The source IEnumerable<T> sequence.

table
DataTable

DataTable de destination.The destination DataTable.

options
LoadOption

Énumération LoadOption qui spécifie les options de chargement du DataTable.A LoadOption enumeration that specifies the DataTable load options.

errorHandler
FillErrorEventHandler

Délégué FillErrorEventHandler qui représente la méthode qui gérera une erreur.A FillErrorEventHandler delegate that represents the method that will handle an error.

Exceptions

Les objets DataRow copiés ne correspondent pas au schéma du DataTable de destination.The copied DataRow objects do not fit the schema of the destination DataTable.

La séquence source IEnumerable<T> est null ou le DataTable de destination est null.The source IEnumerable<T> sequence is null or the destination DataTable is null.

Un DataRow dans la séquence source a un état Deleted.A DataRow in the source sequence has a state of Deleted.

ou-or- La séquence source ne contient aucun objet DataRow.The source sequence does not contain any DataRow objects.

- ou --or- Un DataRow dans la séquence source est null.A DataRow in the source sequence is null.

Remarques

Le paramètre T du paramètre d’entrée source peut être de type DataRow ou d’un type dérivé de DataRow.The parameter T of the input parameter source can only be of type DataRow, or a type derived from DataRow.

La séquence d’entrée peut être n’importe quelle source IEnumerable<T>, pas seulement une requête sur une DataTable.The input sequence can be any IEnumerable<T> source, not only a query over a DataTable. Notez que si la séquence source est une requête, l’appel de cet opérateur force l’exécution immédiate.Note that if the source sequence is a query, calling this operator will force immediate execution. L’énumération de la séquence source peut également provoquer la levée d’exceptions.Enumerating the source sequence can also cause exceptions to be thrown.

Le schéma de la table de destination est basé sur le schéma de la première ligne DataRow dans la séquence source.The schema of the destination table is based on the schema of the first DataRow row in the source sequence. Les métadonnées de table sont extraites des métadonnées DataRow et des valeurs de table à partir des valeurs de colonne de la DataRow.The table metadata is extracted from the DataRow metadata and the table values from the column values of the DataRow. Pour un @no__t typé-0, les types ne sont pas conservés.For a typed DataTable, types are not preserved. Les données et le schéma sont transférés, mais les lignes résultantes de la table de sortie ne seront pas du type DataRow typé.The data and schema are transferred, but the resulting rows of the output table will not be of the typed DataRow type. Les propriétés RowState et RowError ne sont pas conservées lors de la copie du @no__t source-2 vers le DataTable retourné.The RowState and RowError properties are not preserved during the copy from the source DataRow to the returned DataTable.

Lorsqu’une référence null ou un type Nullable avec une valeur null est trouvé dans une source DataRow, cette méthode remplace la valeur dans le @no__t de destination-3 par la valeur 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 table générée retournée par la méthode a le nom de table par défaut.The generated table returned by the method has the default table name. Si vous souhaitez nommer le DataTable, l’attacher à une DataSet, ou effectuer toute autre opération spécifique DataTable, vous devez le faire après la création et le retour de la table.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.

Si une exception est levée pendant la copie d’une ligne de données dans la table cible, telle qu’une exception de contrainte, le délégué errorHandler est appelé.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 est passé au délégué errorHandler avec les valeurs suivantes :A FillErrorEventArgs is passed to the errorHandler delegate with the following values:

  • La propriété Values est définie sur une copie des données sources.The Values property is set to a copy of the source data.

  • La propriété DataTable est définie sur la cible DataTable.The DataTable property is set to the target DataTable.

  • La propriété Errors a la valeur de l’exception interceptée.The Errors property is set to the caught exception.

La propriété Continue est lue après le retour de l’appel de délégué.The Continue property is read after the delegate call returns. Si la propriété Continue est true, la séquence source continue d’être énumérée et chargée dans la table de données.If the Continue property is true, the source sequence continues to be enumerated and loaded into the data table. Si la propriété Continue est false, l’exception d’origine est levée à partir de la méthode CopyToDataTable.If the Continue property is false, the original exception is thrown from the CopyToDataTable method.

Pour plus d’informations, consultez création d’un DataTable à partir d’une requête.For more information, see Creating a DataTable From a Query.

S’applique à