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

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.

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.

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.

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.

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.

Paramètres

source
IEnumerable<T>

Séquence IEnumerable<T> source.

Retours

DataTable

DataTable qui contient la séquence d'entrée comme type d'objets DataRow.

Exceptions

La séquence IEnumerable<T> source est null et une nouvelle table ne peut pas être créée.

Un DataRow dans la séquence source a un état Deleted.

La séquence source ne contient aucun objet DataRow.

Un DataRow dans la séquence source est null.

Exemples

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

La séquence d’entrée peut être n’importe quelle IEnumerable<T> source, pas seulement une requête ou une requête sur un DataTable . Notez que si la séquence source est une requête, l’appel de cet opérateur force l’exécution immédiate. L’énumération de la séquence source peut également provoquer la levée d’exceptions.

Le schéma de la table de destination est basé sur le schéma de la première DataRow ligne de la séquence source. Les métadonnées de table sont extraites des DataRow métadonnées et des valeurs de table à partir des valeurs de colonne de DataRow . Pour un typé DataTable , les types ne sont pas conservés. 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 DataRow type typé. Les RowState Propriétés et ne RowError sont pas conservées pendant la copie de la source DataRow vers le retourné 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 la destination DataTable par la valeur Value .

La table générée retournée par la méthode a le nom de table par défaut. Si vous souhaitez nommer le DataTable , l’attacher à un DataSet ou effectuer toute autre DataTable opération spécifique, vous devez le faire après la création et la retournée de la table.

Pour plus d’informations, consultez création d’un DataTable à partir d’une requête.

S’applique à

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.

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.

Paramètres

source
IEnumerable<T>

Séquence IEnumerable<T> source.

table
DataTable

DataTable de destination.

options
LoadOption

Énumération LoadOption qui spécifie les options de chargement du DataTable.

Exceptions

Les objets DataRow copiés ne correspondent pas au schéma du DataTable de destination.

La séquence source IEnumerable<T> est null ou le DataTable de destination est null.

Un DataRow dans la séquence source a un état Deleted.

La séquence source ne contient aucun objet DataRow.

Un DataRow dans la séquence source est null.

Remarques

Le paramètre T du paramètre d’entrée source peut être uniquement de type DataRow , ou un type dérivé de DataRow .

La séquence d’entrée peut être n’importe quelle IEnumerable<T> source, non seulement une requête sur un DataTable . Notez que si la séquence source est une requête, l’appel de cet opérateur force l’exécution immédiate. L’énumération de la séquence source peut également provoquer la levée d’exceptions.

Le schéma de la table de destination est basé sur le schéma de la première DataRow ligne de la séquence source. Les métadonnées de table sont extraites des DataRow métadonnées et des valeurs de table à partir des valeurs de colonne de DataRow . Pour un typé DataTable , les types ne sont pas conservés. 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 DataRow type typé. Les RowState Propriétés et ne RowError sont pas conservées pendant la copie de la source DataRow vers le retourné 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 la destination DataTable par la valeur Value .

La table générée retournée par la méthode a le nom de table par défaut. Si vous souhaitez nommer le DataTable , l’attacher à un DataSet ou effectuer toute autre DataTable opération spécifique, vous devez le faire après la création et la retournée de la table.

Pour plus d’informations, consultez création d’un DataTable à partir d’une requête.

S’applique à

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.

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)

Paramètres de type

T

Type d’objets dans la séquence source, en général DataRow.

Paramètres

source
IEnumerable<T>

Séquence IEnumerable<T> source.

table
DataTable

DataTable de destination.

options
LoadOption

Énumération LoadOption qui spécifie les options de chargement du DataTable.

errorHandler
FillErrorEventHandler

Délégué FillErrorEventHandler qui représente la méthode qui gérera une erreur.

Exceptions

Les objets DataRow copiés ne correspondent pas au schéma du DataTable de destination.

La séquence source IEnumerable<T> est null ou le DataTable de destination est null.

Un DataRow dans la séquence source a un état Deleted.

  • ou - La séquence source ne contient aucun objet DataRow.

  • ou - Un DataRow dans la séquence source est null.

Remarques

Le paramètre T du paramètre d’entrée source peut être uniquement de type DataRow , ou un type dérivé de DataRow .

La séquence d’entrée peut être n’importe quelle IEnumerable<T> source, non seulement une requête sur un DataTable . Notez que si la séquence source est une requête, l’appel de cet opérateur force l’exécution immédiate. L’énumération de la séquence source peut également provoquer la levée d’exceptions.

Le schéma de la table de destination est basé sur le schéma de la première DataRow ligne de la séquence source. Les métadonnées de table sont extraites des DataRow métadonnées et des valeurs de table à partir des valeurs de colonne de DataRow . Pour un typé DataTable , les types ne sont pas conservés. 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 DataRow type typé. Les RowState Propriétés et ne RowError sont pas conservées pendant la copie de la source DataRow vers le retourné 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 la destination DataTable par la valeur Value .

La table générée retournée par la méthode a le nom de table par défaut. Si vous souhaitez nommer le DataTable , l’attacher à un DataSet ou effectuer toute autre DataTable opération spécifique, vous devez le faire après la création et la retournée de la table.

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 errorHandler délégué est appelé. Un FillErrorEventArgs est passé au errorHandler délégué avec les valeurs suivantes :

  • La Values propriété est définie sur une copie des données sources.

  • La DataTable propriété est définie sur la cible DataTable .

  • La Errors propriété a la valeur de l’exception interceptée.

La Continue propriété est lue après le retour de l’appel de délégué. Si la Continue propriété a la valeur true , la séquence source continue d’être énumérée et chargée dans la table de données. Si la Continue propriété est false , l’exception d’origine est levée à partir de la CopyToDataTable méthode.

Pour plus d’informations, consultez création d’un DataTable à partir d’une requête.

S’applique à