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

Definición

Devuelve un DataTable que contiene copias de los DataRow objetos, dados una entrada IEnumerable<T> objeto.Returns a DataTable that contains copies of the DataRow objects, given an input IEnumerable<T> object.

Sobrecargas

CopyToDataTable<T>(IEnumerable<T>) CopyToDataTable<T>(IEnumerable<T>) CopyToDataTable<T>(IEnumerable<T>) CopyToDataTable<T>(IEnumerable<T>)

Devuelve un DataTable que contiene copias de los DataRow objetos, dados una entrada IEnumerable<T> objeto donde el parámetro genérico T es 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) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption)

Copias DataRow objetos a los especificados DataTable, dada una entrada IEnumerable<T> objeto donde el parámetro genérico T es 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)

Copias DataRow objetos a los especificados DataTable, dada una entrada IEnumerable<T> objeto donde el parámetro genérico T es 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>)

Devuelve un DataTable que contiene copias de los DataRow objetos, dados una entrada IEnumerable<T> objeto donde el parámetro genérico T es 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

Parámetros de tipo

T

Tipo de objetos de la secuencia de origen, normalmente DataRow.The type of objects in the source sequence, typically DataRow.

Parámetros

Devoluciones

Un DataTable que contiene la secuencia de entrada como el tipo de DataRow objetos.A DataTable that contains the input sequence as the type of DataRow objects.

Excepciones

El origen IEnumerable<T> secuencia es null y no se puede crear una nueva tabla.The source IEnumerable<T> sequence is null and a new table cannot be created.

Un DataRow en el origen de secuencia tiene un estado de Deleted.A DataRow in the source sequence has a state of Deleted.

La secuencia de origen no contiene ningún DataRow objetos.The source sequence does not contain any DataRow objects.

Un DataRow en el origen de la secuencia es null.A DataRow in the source sequence is null.

Ejemplos

El ejemplo siguiente se consulta la tabla SalesOrderHeader los pedidos después del 8 de agosto de 2001 y usa el CopyToDataTable método para crear un DataTable desde una consulta.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. A continuación, se enlaza DataTable a un BindingSource, que actúa como proxy para un objeto 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

Comentarios

El parámetro T del parámetro de entrada source solo pueden ser de tipo DataRow o un tipo derivado de DataRow.The parameter T of the input parameter source can only be of type DataRow or a type derived from DataRow.

La secuencia de entrada puede ser cualquier IEnumerable<T> de origen, no sólo una consulta o una consulta a través de un DataTable.The input sequence can be any IEnumerable<T> source, not only a query or a query over a DataTable. Tenga en cuenta que si la secuencia de origen es una consulta, una llamada a este operador se forzará la ejecución inmediata.Note that if the source sequence is a query, calling this operator will force immediate execution. Enumeración de la secuencia de origen, también puede provocar que se produzcan excepciones.Enumerating the source sequence can also cause exceptions to be thrown.

El esquema de la tabla de destino se basa en el esquema de la primera DataRow fila en la secuencia de origen.The schema of the destination table is based on the schema of the first DataRow row in the source sequence. Se extraen los metadatos de la tabla de la DataRow metadatos y la tabla de valores de los valores de columna de la DataRow.The table metadata is extracted from the DataRow metadata and the table values from the column values of the DataRow. Para un tipo DataTable, tipos no se conservan.For a typed DataTable, types are not preserved. Se transfieren los datos y el esquema, pero las filas resultantes de la tabla de resultados no serán de con tipo DataRow tipo.The data and schema are transferred, but the resulting rows of the output table will not be of the typed DataRow type. El RowState y RowError propiedades no se conservan durante la copia desde el origen DataRow para el valor devuelto DataTable.The RowState and RowError properties are not preserved during the copy from the source DataRow to the returned DataTable.

Cuando un null referencia o tipo que acepta valores NULL con un valor de null se encuentra en un origen de DataRow, este método reemplaza el valor en el destino DataTable con un valor de 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 tabla generada devuelta por el método tiene el nombre de tabla predeterminado.The generated table returned by the method has the default table name. Si desea asignar nombre a la DataTable, adjuntarla a una DataSet, o realizar cualquier otro DataTable operación específica, debe hacerlo después de que se crea y devuelve la tabla.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.

Para obtener más información, consulte creación de una DataTable de consulta.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)

Copias DataRow objetos a los especificados DataTable, dada una entrada IEnumerable<T> objeto donde el parámetro genérico T es 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)

Parámetros de tipo

T

Tipo de objetos de la secuencia de origen, normalmente DataRow.The type of objects in the source sequence, typically DataRow.

Parámetros

table
DataTable DataTable DataTable DataTable

DataTable de destino.The destination DataTable.

options
LoadOption LoadOption LoadOption LoadOption

Un LoadOption enumeración que especifica el DataTable opciones de carga.A LoadOption enumeration that specifies the DataTable load options.

Excepciones

Copiado DataRow objetos no ajustan el esquema de destino DataTable.The copied DataRow objects do not fit the schema of the destination DataTable.

El origen IEnumerable<T> secuencia es null o el destino DataTable es null.The source IEnumerable<T> sequence is null or the destination DataTable is null.

Un DataRow en el origen de secuencia tiene un estado de Deleted.A DataRow in the source sequence has a state of Deleted.

La secuencia de origen no contiene ningún DataRow objetos.The source sequence does not contain any DataRow objects.

Un DataRow en el origen de la secuencia es null.A DataRow in the source sequence is null.

Comentarios

El parámetro T del parámetro de entrada source solo pueden ser de tipo DataRow, o un tipo derivado de DataRow.The parameter T of the input parameter source can only be of type DataRow, or a type derived from DataRow.

La secuencia de entrada puede ser cualquier IEnumerable<T> de origen, no sólo una consulta a través de un DataTable.The input sequence can be any IEnumerable<T> source, not only a query over a DataTable. Tenga en cuenta que si la secuencia de origen es una consulta, una llamada a este operador se forzará la ejecución inmediata.Note that if the source sequence is a query, calling this operator will force immediate execution. Enumeración de la secuencia de origen, también puede provocar que se produzcan excepciones.Enumerating the source sequence can also cause exceptions to be thrown.

El esquema de la tabla de destino se basa en el esquema de la primera DataRow fila en la secuencia de origen.The schema of the destination table is based on the schema of the first DataRow row in the source sequence. Se extraen los metadatos de la tabla de la DataRow metadatos y la tabla de valores de los valores de columna de la DataRow.The table metadata is extracted from the DataRow metadata and the table values from the column values of the DataRow. Para un tipo DataTable, tipos no se conservan.For a typed DataTable, types are not preserved. Se transfieren los datos y el esquema, pero las filas resultantes de la tabla de resultados no serán de con tipo DataRow tipo.The data and schema are transferred, but the resulting rows of the output table will not be of the typed DataRow type. El RowState y RowError propiedades no se conservan durante la copia desde el origen DataRow para el valor devuelto DataTable.The RowState and RowError properties are not preserved during the copy from the source DataRow to the returned DataTable.

Cuando un null referencia o tipo que acepta valores NULL con un valor de null se encuentra en un origen de DataRow, este método reemplaza el valor en el destino DataTable con un valor de 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 tabla generada devuelta por el método tiene el nombre de tabla predeterminado.The generated table returned by the method has the default table name. Si desea asignar nombre a la DataTable, adjuntarla a una DataSet, o realizar cualquier otro DataTable operación específica, debe hacerlo después de que se crea y devuelve la tabla.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.

Para obtener más información, consulte creación de una DataTable de consulta.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)

Copias DataRow objetos a los especificados DataTable, dada una entrada IEnumerable<T> objeto donde el parámetro genérico T es 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)

Parámetros de tipo

T

Tipo de objetos de la secuencia de origen, normalmente DataRow.The type of objects in the source sequence, typically DataRow.

Parámetros

table
DataTable DataTable DataTable DataTable

DataTable de destino.The destination DataTable.

options
LoadOption LoadOption LoadOption LoadOption

Un LoadOption enumeración que especifica el DataTable opciones de carga.A LoadOption enumeration that specifies the DataTable load options.

errorHandler
FillErrorEventHandler FillErrorEventHandler FillErrorEventHandler FillErrorEventHandler

Un FillErrorEventHandler delegado que representa el método que controlará un error.A FillErrorEventHandler delegate that represents the method that will handle an error.

Excepciones

Copiado DataRow objetos no ajustan el esquema de destino DataTable.The copied DataRow objects do not fit the schema of the destination DataTable.

El origen IEnumerable<T> secuencia es null o el destino DataTable es null.The source IEnumerable<T> sequence is null or the destination DataTable is null.

Un DataRow en el origen de secuencia tiene un estado de Deleted.A DataRow in the source sequence has a state of Deleted.

-o bien--or- La secuencia de origen no contiene ningún DataRow objetos.The source sequence does not contain any DataRow objects.

-o bien--or- Un DataRow en el origen de la secuencia es null.A DataRow in the source sequence is null.

Comentarios

El parámetro T del parámetro de entrada source solo pueden ser de tipo DataRow, o un tipo derivado de DataRow.The parameter T of the input parameter source can only be of type DataRow, or a type derived from DataRow.

La secuencia de entrada puede ser cualquier IEnumerable<T> de origen, no sólo una consulta a través de un DataTable.The input sequence can be any IEnumerable<T> source, not only a query over a DataTable. Tenga en cuenta que si la secuencia de origen es una consulta, una llamada a este operador se forzará la ejecución inmediata.Note that if the source sequence is a query, calling this operator will force immediate execution. Enumeración de la secuencia de origen, también puede provocar que se produzcan excepciones.Enumerating the source sequence can also cause exceptions to be thrown.

El esquema de la tabla de destino se basa en el esquema de la primera DataRow fila en la secuencia de origen.The schema of the destination table is based on the schema of the first DataRow row in the source sequence. Se extraen los metadatos de la tabla de la DataRow metadatos y la tabla de valores de los valores de columna de la DataRow.The table metadata is extracted from the DataRow metadata and the table values from the column values of the DataRow. Para un tipo DataTable, tipos no se conservan.For a typed DataTable, types are not preserved. Se transfieren los datos y el esquema, pero las filas resultantes de la tabla de resultados no serán de con tipo DataRow tipo.The data and schema are transferred, but the resulting rows of the output table will not be of the typed DataRow type. El RowState y RowError propiedades no se conservan durante la copia desde el origen DataRow para el valor devuelto DataTable.The RowState and RowError properties are not preserved during the copy from the source DataRow to the returned DataTable.

Cuando un null referencia o tipo que acepta valores NULL con un valor de null se encuentra en un origen de DataRow, este método reemplaza el valor en el destino DataTable con un valor de 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 tabla generada devuelta por el método tiene el nombre de tabla predeterminado.The generated table returned by the method has the default table name. Si desea asignar nombre a la DataTable, adjuntarla a una DataSet, o realizar cualquier otro DataTable operación específica, debe hacerlo después de que se crea y devuelve la tabla.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 se produce una excepción durante la copia de una fila de datos en la tabla de destino, como una excepción de restricción, el errorHandler se llama al delegado.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 se pasa a la errorHandler delegar con los siguientes valores:A FillErrorEventArgs is passed to the errorHandler delegate with the following values:

  • El Values propiedad está establecida en una copia del origen de datos.The Values property is set to a copy of the source data.

  • El DataTable propiedad está establecida en el destino DataTable.The DataTable property is set to the target DataTable.

  • El Errors propiedad se establece en la excepción detectada.The Errors property is set to the caught exception.

El Continue propiedad es de lectura después de que devuelva la llamada al delegado.The Continue property is read after the delegate call returns. Si el Continue propiedad es true, sigue la secuencia de origen se enumeran y se cargan en la tabla de datos.If the Continue property is true, the source sequence continues to be enumerated and loaded into the data table. Si el Continue propiedad es false, se produce la excepción original desde el CopyToDataTable método.If the Continue property is false, the original exception is thrown from the CopyToDataTable method.

Para obtener más información, consulte creación de una DataTable de consulta.For more information, see Creating a DataTable From a Query.

Se aplica a