Compartir por


DataTableExtensions.CopyToDataTable Método

Definición

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

Sobrecargas

Nombre Description
CopyToDataTable<T>(IEnumerable<T>)

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

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

Copia DataRow objetos en el DataTableespecificado, dado un objeto IEnumerable<T> de entrada donde se Tel parámetro genérico DataRow .

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

Copia DataRow objetos en el DataTableespecificado, dado un objeto IEnumerable<T> de entrada donde se Tel parámetro genérico DataRow .

CopyToDataTable<T>(IEnumerable<T>)

Source:
DataTableExtensions.cs
Source:
DataTableExtensions.cs
Source:
DataTableExtensions.cs
Source:
DataTableExtensions.cs
Source:
DataTableExtensions.cs

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

Devoluciones

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

Excepciones

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

En DataRow la secuencia de origen hay un estado de Deleted.

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

Un DataRow elemento 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 a DataTable 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 a través de .DataTable Tenga en cuenta que si la secuencia de origen es una consulta, llamar a este operador 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 , DataTablelos tipos no se conservan. Los datos y el esquema se transfieren, pero las filas resultantes de la tabla de salida no serán del tipo con tipo escrito DataRow . Las RowState propiedades y RowError no se conservan durante la copia del DataRow origen en el 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 en el destino DataTable por un valor de Value.

La tabla generada devuelta por el método tiene el nombre de tabla predeterminado. Si desea asignar un nombre DataTablea , adjunte a DataSeto realice cualquier otra DataTable operación específica, debe hacerlo después de crear y devolver la tabla.

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

Se aplica a

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

Source:
DataTableExtensions.cs
Source:
DataTableExtensions.cs
Source:
DataTableExtensions.cs
Source:
DataTableExtensions.cs
Source:
DataTableExtensions.cs

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

table
DataTable

DataTable de destino.

options
LoadOption

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

Excepciones

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

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

En DataRow la secuencia de origen hay un estado de Deleted.

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

Un DataRow elemento de la secuencia de origen es null.

Comentarios

El parámetro T del parámetro source 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, llamar a este operador 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 , DataTablelos tipos no se conservan. Los datos y el esquema se transfieren, pero las filas resultantes de la tabla de salida no serán del tipo con tipo escrito DataRow . Las RowState propiedades y RowError no se conservan durante la copia del DataRow origen en el 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 en el destino DataTable por un valor de Value.

La tabla generada devuelta por el método tiene el nombre de tabla predeterminado. Si desea asignar un nombre DataTablea , adjunte a DataSeto realice cualquier otra DataTable operación específica, debe hacerlo después de crear y devolver la tabla.

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

Se aplica a

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

Source:
DataTableExtensions.cs
Source:
DataTableExtensions.cs
Source:
DataTableExtensions.cs
Source:
DataTableExtensions.cs
Source:
DataTableExtensions.cs

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

table
DataTable

DataTable de destino.

options
LoadOption

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

errorHandler
FillErrorEventHandler

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

Excepciones

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

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

En DataRow la secuencia de origen hay un estado de Deleted.

O bien

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

O bien

Un DataRow elemento de la secuencia de origen es null.

Comentarios

El parámetro T del parámetro source 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, llamar a este operador 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 , DataTablelos tipos no se conservan. Los datos y el esquema se transfieren, pero las filas resultantes de la tabla de salida no serán del tipo con tipo escrito DataRow . Las RowState propiedades y RowError no se conservan durante la copia del DataRow origen en el 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 en el destino DataTable por un valor de Value.

La tabla generada devuelta por el método tiene el nombre de tabla predeterminado. Si desea asignar un nombre DataTablea , adjunte a DataSeto realice 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 siguientes valores:

  • 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 continúa 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, consulte Creación de una tabla de datos a partir de una consulta.

Se aplica a