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

Definição

Retorna um DataTable que contém cópias dos objetos DataRow, dado um objeto IEnumerable<T> de entrada.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>)

Retorna um DataTable que contém cópias dos objetos DataRow, dado um objeto IEnumerable<T> de entrada em que o parâmetro genérico T é 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)

Copia objetos DataRow no DataTable especificado, dado um objeto IEnumerable<T> de entrada em que o parâmetro genérico T é 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)

Copia objetos DataRow no DataTable especificado, dado um objeto IEnumerable<T> de entrada em que o parâmetro genérico T é 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>)

Retorna um DataTable que contém cópias dos objetos DataRow, dado um objeto IEnumerable<T> de entrada em que o parâmetro genérico T é 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

O tipo de objetos na sequência de origem, normalmente DataRow.The type of objects in the source sequence, typically DataRow.

Parâmetros

source
IEnumerable<T> IEnumerable<T> IEnumerable<T> IEnumerable<T>

A sequência de origem IEnumerable<T>.The source IEnumerable<T> sequence.

Retornos

Um DataTable que contém a sequência de entrada como o tipo de objetos DataRow.A DataTable that contains the input sequence as the type of DataRow objects.

Exceções

A sequência de origem IEnumerable<T> é null e não é possível criar uma nova tabela.The source IEnumerable<T> sequence is null and a new table cannot be created.

Um DataRow na sequência de origem tem um estado de Deleted.A DataRow in the source sequence has a state of Deleted.

A sequência de origem não contém nenhum objeto DataRow.The source sequence does not contain any DataRow objects.

Um DataRow na sequência de origem é null.A DataRow in the source sequence is null.

Exemplos

O exemplo a seguir consulta a tabela SalesOrderHeader para pedidos após 8 de agosto de 2001 e usa o método CopyToDataTable para criar um DataTable a partir dessa 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. O DataTable é então associado a um BindingSource, que age como o proxy para um 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

Comentários

O parâmetro T do parâmetro de entrada source só pode ser do tipo DataRow ou um tipo derivado de DataRow.The parameter T of the input parameter source can only be of type DataRow or a type derived from DataRow.

A sequência de entrada pode ser qualquer fonte IEnumerable<T>, não apenas uma consulta ou uma consulta em um DataTable.The input sequence can be any IEnumerable<T> source, not only a query or a query over a DataTable. Observe que, se a sequência de origem for uma consulta, chamar esse operador forçará a execução imediata.Note that if the source sequence is a query, calling this operator will force immediate execution. A enumeração da sequência de origem também pode causar a geração de exceções.Enumerating the source sequence can also cause exceptions to be thrown.

O esquema da tabela de destino baseia-se no esquema da primeira linha DataRow na sequência de origem.The schema of the destination table is based on the schema of the first DataRow row in the source sequence. Os metadados de tabela são extraídos dos metadados DataRow e dos valores de tabela dos valores de coluna do DataRow.The table metadata is extracted from the DataRow metadata and the table values from the column values of the DataRow. Para um DataTable tipado, os tipos não são preservados.For a typed DataTable, types are not preserved. Os dados e o esquema são transferidos, mas as linhas resultantes da tabela de saída não serão do tipo DataRow digitado.The data and schema are transferred, but the resulting rows of the output table will not be of the typed DataRow type. As propriedades RowState e RowError não são preservadas durante a cópia da origem DataRow para a DataTable retornada.The RowState and RowError properties are not preserved during the copy from the source DataRow to the returned DataTable.

Quando uma referência nula ou um tipo anulável com um valor de NULL é encontrado em uma fonte DataRow, esse método substitui o valor no destino DataTable por um 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.

A tabela gerada retornada pelo método tem o nome de tabela padrão.The generated table returned by the method has the default table name. Se você quiser nomear o DataTable, anexá-lo a um DataSet ou executar qualquer outra operação específica do DataTable, deverá fazer isso depois que a tabela for criada e retornada.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 obter mais informações, consulte criando uma DataTable de uma 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)

Copia objetos DataRow no DataTable especificado, dado um objeto IEnumerable<T> de entrada em que o parâmetro genérico T é 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

O tipo de objetos na sequência de origem, normalmente DataRow.The type of objects in the source sequence, typically DataRow.

Parâmetros

source
IEnumerable<T> IEnumerable<T> IEnumerable<T> IEnumerable<T>

A sequência de origem IEnumerable<T>.The source IEnumerable<T> sequence.

table
DataTable DataTable DataTable DataTable

O DataTable de destino.The destination DataTable.

options
LoadOption LoadOption LoadOption LoadOption

Uma enumeração LoadOption que especifica as opções de carga do DataTable.A LoadOption enumeration that specifies the DataTable load options.

Exceções

Os objetos DataRow copiados não se ajustam ao esquema do DataTable de destino.The copied DataRow objects do not fit the schema of the destination DataTable.

A sequência de origem IEnumerable<T> é null ou o destino DataTable é null.The source IEnumerable<T> sequence is null or the destination DataTable is null.

Um DataRow na sequência de origem tem um estado de Deleted.A DataRow in the source sequence has a state of Deleted.

A sequência de origem não contém nenhum objeto DataRow.The source sequence does not contain any DataRow objects.

Um DataRow na sequência de origem é null.A DataRow in the source sequence is null.

Comentários

O parâmetro T do parâmetro de entrada source só pode ser do tipo DataRow ou um tipo derivado de DataRow.The parameter T of the input parameter source can only be of type DataRow, or a type derived from DataRow.

A sequência de entrada pode ser qualquer fonte IEnumerable<T>, não apenas uma consulta em um DataTable.The input sequence can be any IEnumerable<T> source, not only a query over a DataTable. Observe que, se a sequência de origem for uma consulta, chamar esse operador forçará a execução imediata.Note that if the source sequence is a query, calling this operator will force immediate execution. A enumeração da sequência de origem também pode causar a geração de exceções.Enumerating the source sequence can also cause exceptions to be thrown.

O esquema da tabela de destino baseia-se no esquema da primeira linha DataRow na sequência de origem.The schema of the destination table is based on the schema of the first DataRow row in the source sequence. Os metadados de tabela são extraídos dos metadados DataRow e dos valores de tabela dos valores de coluna do DataRow.The table metadata is extracted from the DataRow metadata and the table values from the column values of the DataRow. Para um DataTable tipado, os tipos não são preservados.For a typed DataTable, types are not preserved. Os dados e o esquema são transferidos, mas as linhas resultantes da tabela de saída não serão do tipo DataRow digitado.The data and schema are transferred, but the resulting rows of the output table will not be of the typed DataRow type. As propriedades RowState e RowError não são preservadas durante a cópia da origem DataRow para a DataTable retornada.The RowState and RowError properties are not preserved during the copy from the source DataRow to the returned DataTable.

Quando uma referência nula ou um tipo anulável com um valor de NULL é encontrado em uma fonte DataRow, esse método substitui o valor no destino DataTable por um 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.

A tabela gerada retornada pelo método tem o nome de tabela padrão.The generated table returned by the method has the default table name. Se você quiser nomear o DataTable, anexá-lo a um DataSet ou executar qualquer outra operação específica do DataTable, deverá fazer isso depois que a tabela for criada e retornada.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 obter mais informações, consulte criando uma DataTable de uma 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)

Copia objetos DataRow no DataTable especificado, dado um objeto IEnumerable<T> de entrada em que o parâmetro genérico T é 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

O tipo de objetos na sequência de origem, normalmente DataRow.The type of objects in the source sequence, typically DataRow.

Parâmetros

source
IEnumerable<T> IEnumerable<T> IEnumerable<T> IEnumerable<T>

A sequência de origem IEnumerable<T>.The source IEnumerable<T> sequence.

table
DataTable DataTable DataTable DataTable

O DataTable de destino.The destination DataTable.

options
LoadOption LoadOption LoadOption LoadOption

Uma enumeração LoadOption que especifica as opções de carga do DataTable.A LoadOption enumeration that specifies the DataTable load options.

errorHandler
FillErrorEventHandler FillErrorEventHandler FillErrorEventHandler FillErrorEventHandler

Um delegado FillErrorEventHandler que representa o método que vai manipular um erro.A FillErrorEventHandler delegate that represents the method that will handle an error.

Exceções

Os objetos DataRow copiados não se ajustam ao esquema do DataTable de destino.The copied DataRow objects do not fit the schema of the destination DataTable.

A sequência de origem IEnumerable<T> é null ou o destino DataTable é null.The source IEnumerable<T> sequence is null or the destination DataTable is null.

Um DataRow na sequência de origem tem um estado de Deleted.A DataRow in the source sequence has a state of Deleted.

- ou --or- A sequência de origem não contém nenhum objeto DataRow.The source sequence does not contain any DataRow objects.

- ou --or- Um DataRow na sequência de origem é null.A DataRow in the source sequence is null.

Comentários

O parâmetro T do parâmetro de entrada source só pode ser do tipo DataRow ou um tipo derivado de DataRow.The parameter T of the input parameter source can only be of type DataRow, or a type derived from DataRow.

A sequência de entrada pode ser qualquer fonte IEnumerable<T>, não apenas uma consulta em um DataTable.The input sequence can be any IEnumerable<T> source, not only a query over a DataTable. Observe que, se a sequência de origem for uma consulta, chamar esse operador forçará a execução imediata.Note that if the source sequence is a query, calling this operator will force immediate execution. A enumeração da sequência de origem também pode causar a geração de exceções.Enumerating the source sequence can also cause exceptions to be thrown.

O esquema da tabela de destino baseia-se no esquema da primeira linha DataRow na sequência de origem.The schema of the destination table is based on the schema of the first DataRow row in the source sequence. Os metadados de tabela são extraídos dos metadados DataRow e dos valores de tabela dos valores de coluna do DataRow.The table metadata is extracted from the DataRow metadata and the table values from the column values of the DataRow. Para um DataTable tipado, os tipos não são preservados.For a typed DataTable, types are not preserved. Os dados e o esquema são transferidos, mas as linhas resultantes da tabela de saída não serão do tipo DataRow digitado.The data and schema are transferred, but the resulting rows of the output table will not be of the typed DataRow type. As propriedades RowState e RowError não são preservadas durante a cópia da origem DataRow para a DataTable retornada.The RowState and RowError properties are not preserved during the copy from the source DataRow to the returned DataTable.

Quando uma referência nula ou um tipo anulável com um valor de NULL é encontrado em uma fonte DataRow, esse método substitui o valor no destino DataTable por um 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.

A tabela gerada retornada pelo método tem o nome de tabela padrão.The generated table returned by the method has the default table name. Se você quiser nomear o DataTable, anexá-lo a um DataSet ou executar qualquer outra operação específica do DataTable, deverá fazer isso depois que a tabela for criada e retornada.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.

Se uma exceção for lançada durante a cópia de uma linha de dados na tabela de destino, como uma exceção de restrição, o delegado errorHandler será chamado.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. Um FillErrorEventArgs é passado para o delegado errorHandler com os seguintes valores:A FillErrorEventArgs is passed to the errorHandler delegate with the following values:

  • A propriedade Values é definida como uma cópia dos dados de origem.The Values property is set to a copy of the source data.

  • A propriedade DataTable é definida como o destino DataTable.The DataTable property is set to the target DataTable.

  • A propriedade Errors é definida como a exceção capturada.The Errors property is set to the caught exception.

A propriedade Continue é lida após o retorno da chamada de delegado.The Continue property is read after the delegate call returns. Se a propriedade Continue for true, a sequência de origem continuará sendo enumerada e carregada na tabela de dados.If the Continue property is true, the source sequence continues to be enumerated and loaded into the data table. Se a propriedade Continue for false, a exceção original será lançada do método CopyToDataTable.If the Continue property is false, the original exception is thrown from the CopyToDataTable method.

Para obter mais informações, consulte criando uma DataTable de uma consulta.For more information, see Creating a DataTable From a Query.

Aplica-se a