DataTableExtensions.CopyToDataTable Método

Definición

Devuelve un objeto DataTable que contiene copias de los objetos DataRow, dado un objeto IEnumerable<T> de entrada.

Sobrecargas

CopyToDataTable<T>(IEnumerable<T>)

Devuelve un objeto DataTable que contiene copias de los objetos DataRow, dado un objeto IEnumerable<T> de entrada donde el parámetro T genérico es DataRow.

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

Copia objetos DataRow en el objeto DataTable especificado, dado un objeto IEnumerable<T> de entrada donde el parámetro T genérico es DataRow.

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

Copia objetos DataRow en el objeto DataTable especificado, dado un objeto IEnumerable<T> de entrada donde el parámetro T genérico es DataRow.

CopyToDataTable<T>(IEnumerable<T>)

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

Parámetros

source
IEnumerable<T>

Secuencia IEnumerable<T> de origen.

Devoluciones

DataTable que contiene la secuencia de entrada como tipo de los objetos DataRow.

Excepciones

La secuencia IEnumerable<T> de origen es null y no se puede crear una tabla nueva.

El estado de un objeto DataRow de la secuencia de origen es Deleted.

La secuencia de origen no contiene ningún objeto DataRow.

El valor de un objeto DataRow de la secuencia de origen es null.

Ejemplos

En el ejemplo siguiente se consulta la tabla SalesOrderHeader para los pedidos después del 8 de agosto de 2001 y se usa el CopyToDataTable método para crear una DataTable a partir de esa consulta. A continuación, se enlaza DataTable a un BindingSource, que actúa como proxy para un objeto 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 del parámetro Tsource de entrada solo puede ser de tipo DataRow o de un tipo derivado de DataRow.

La secuencia de entrada puede ser cualquier IEnumerable<T> origen, no solo una consulta o una consulta sobre .DataTable Tenga en cuenta que si la secuencia de origen es una consulta, al llamar a este operador se forzará la ejecución inmediata. La enumeración de la secuencia de origen también puede provocar excepciones.

El esquema de la tabla de destino se basa en el esquema de la primera DataRow fila de la secuencia de origen. Los metadatos de la tabla se extraen de los DataRow metadatos y los valores de la tabla de los valores de columna de DataRow. En el caso de un tipo , DataTableno se conservan los tipos. Los datos y el esquema se transfieren, pero las filas resultantes de la tabla de salida no serán del tipo con DataRow tipo. Las RowState propiedades y RowError no se conservan durante la copia del origen DataRow al devuelto DataTable.

Cuando se encuentra una referencia nula o un tipo que acepta valores NULL con un valor null en un DataRoworigen , este método reemplaza el valor del destino DataTable por un valor de Value.

La tabla generada devuelta por el método tiene el nombre de tabla predeterminado. Si desea asignarle el DataTablenombre , asociarlo a o DataSetrealizar cualquier otra DataTable operación específica, debe hacerlo después de crear y devolver la tabla.

Para obtener más información, vea Crear una tabla de datos a partir de una consulta.

Se aplica a

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

Copia objetos DataRow en el objeto DataTable especificado, dado un objeto IEnumerable<T> de entrada donde el parámetro T genérico es 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.

Parámetros

source
IEnumerable<T>

Secuencia IEnumerable<T> de origen.

table
DataTable

DataTable de destino.

options
LoadOption

Enumeración LoadOption que especifica las opciones de carga de DataTable.

Excepciones

Los objetos DataRow copiados no se ajustan al esquema del objeto DataTable de destino.

La secuencia IEnumerable<T> de origen es null o el objeto DataTable de destino es null.

El estado de un objeto DataRow de la secuencia de origen es Deleted.

La secuencia de origen no contiene ningún objeto DataRow.

El valor de un objeto DataRow de la secuencia de origen es null.

Comentarios

El parámetro del parámetro Tsource de entrada solo puede ser de tipo DataRow, o un tipo derivado de DataRow.

La secuencia de entrada puede ser cualquier IEnumerable<T> origen, no solo una consulta sobre .DataTable Tenga en cuenta que si la secuencia de origen es una consulta, al llamar a este operador se forzará la ejecución inmediata. La enumeración de la secuencia de origen también puede provocar excepciones.

El esquema de la tabla de destino se basa en el esquema de la primera DataRow fila de la secuencia de origen. Los metadatos de la tabla se extraen de los DataRow metadatos y los valores de la tabla de los valores de columna de DataRow. En el caso de un tipo , DataTableno se conservan los tipos. Los datos y el esquema se transfieren, pero las filas resultantes de la tabla de salida no serán del tipo con DataRow tipo. Las RowState propiedades y RowError no se conservan durante la copia del origen DataRow al devuelto DataTable.

Cuando se encuentra una referencia nula o un tipo que acepta valores NULL con un valor null en un DataRoworigen , este método reemplaza el valor del destino DataTable por un valor de Value.

La tabla generada devuelta por el método tiene el nombre de tabla predeterminado. Si desea asignarle el DataTablenombre , asociarlo a o DataSetrealizar cualquier otra DataTable operación específica, debe hacerlo después de crear y devolver la tabla.

Para obtener más información, vea Crear una tabla de datos a partir de una consulta.

Se aplica a

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

Copia objetos DataRow en el objeto DataTable especificado, dado un objeto IEnumerable<T> de entrada donde el parámetro T genérico es 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)

Parámetros de tipo

T

Tipo de objetos de la secuencia de origen, normalmente DataRow.

Parámetros

source
IEnumerable<T>

Secuencia IEnumerable<T> de origen.

table
DataTable

DataTable de destino.

options
LoadOption

Enumeración LoadOption que especifica las opciones de carga de DataTable.

errorHandler
FillErrorEventHandler

Delegado FillErrorEventHandler que representa el método que va a controlar un error.

Excepciones

Los objetos DataRow copiados no se ajustan al esquema del objeto DataTable de destino.

La secuencia IEnumerable<T> de origen es null o el objeto DataTable de destino es null.

El estado de un objeto DataRow de la secuencia de origen es Deleted.

o bien

La secuencia de origen no contiene ningún objeto DataRow.

o bien

El valor de un objeto DataRow de la secuencia de origen es null.

Comentarios

El parámetro del parámetro Tsource de entrada solo puede ser de tipo DataRow, o un tipo derivado de DataRow.

La secuencia de entrada puede ser cualquier IEnumerable<T> origen, no solo una consulta sobre .DataTable Tenga en cuenta que si la secuencia de origen es una consulta, al llamar a este operador se forzará la ejecución inmediata. La enumeración de la secuencia de origen también puede provocar excepciones.

El esquema de la tabla de destino se basa en el esquema de la primera DataRow fila de la secuencia de origen. Los metadatos de la tabla se extraen de los DataRow metadatos y los valores de la tabla de los valores de columna de DataRow. En el caso de un tipo , DataTableno se conservan los tipos. Los datos y el esquema se transfieren, pero las filas resultantes de la tabla de salida no serán del tipo con DataRow tipo. Las RowState propiedades y RowError no se conservan durante la copia del origen DataRow al devuelto DataTable.

Cuando se encuentra una referencia nula o un tipo que acepta valores NULL con un valor null en un DataRoworigen , este método reemplaza el valor del destino DataTable por un valor de Value.

La tabla generada devuelta por el método tiene el nombre de tabla predeterminado. Si desea asignarle el DataTablenombre , asociarlo a o DataSetrealizar cualquier otra DataTable operación específica, debe hacerlo después de crear y devolver la tabla.

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, se llama al errorHandler delegado. FillErrorEventArgs Se pasa al errorHandler delegado con los valores siguientes:

  • La Values propiedad se establece en una copia de los datos de origen.

  • La DataTable propiedad se establece en el destino DataTable.

  • La Errors propiedad se establece en la excepción detectada.

La Continue propiedad se lee después de que se devuelva la llamada de delegado. Si la Continue propiedad es true, la secuencia de origen se sigue enumerando y cargando en la tabla de datos. Si la Continue propiedad es false, la excepción original se produce desde el CopyToDataTable método .

Para obtener más información, vea Crear una tabla de datos a partir de una consulta.

Se aplica a